La redirección abierta (Open Redirect) es una vulnerabilidad en la que una aplicación web utiliza como destino de redirección el valor de un parámetro URL proporcionado externamente sin verificarlo. En el Top 10 de OWASP (Open Web Application Security Project) figura como CWE-601 (redirección de URL a un sitio no confiable), dentro del control de acceso deficiente (A01), la categoría que encabeza la edición de 2025.
Un ejemplo concreto: si la URL "https://sitio-confiable.com/redirect?url=https://sitio-malicioso.com" hace que sitio-confiable.com redirija sin validar el parámetro url, el usuario cree estar haciendo clic en un enlace de un dominio de confianza pero acaba en un sitio malicioso.
La razón por la que se explota en ataques de phishing es que un dominio de confianza actúa como puerta de entrada al enlace. Los filtros de seguridad del correo electrónico y la propia inspección visual del usuario tienden a considerar seguro un enlace cuyo dominio inicial es legítimo.
Los servicios de acortamiento de URL son esencialmente servicios de redirección, por lo que están estrechamente relacionados con este problema. Existen casos reales en los que usuarios malintencionados crean enlaces a sitios de phishing a través de servicios de acortamiento. Los servicios de acortamiento también aplican contramedidas, pero por lo general no se publica qué métodos emplean ni cuánto alcanzan a detectar. Entre las medidas visibles para el usuario están las páginas de advertencia que muestran el destino antes de redirigir (splash pages) y un canal para denunciar el uso indebido. Que existan esas funciones no significa que los enlaces emitidos por el servicio sean seguros. En lugar de juzgar la seguridad a partir de suposiciones sobre esos mecanismos, resulta más fiable atenerse a lo que se puede comprobar desde fuera.
Para que los desarrolladores prevengan la redirección abierta, es eficaz restringir los destinos mediante listas blancas, permitir solo URL relativas y validar el dominio de destino. Nunca se debe usar directamente un parámetro URL como destino de redirección sin validación.
Hay dos huecos que sobreviven a una validación aparentemente correcta. El primero es comparar el dominio por prefijo: una URL como "https://sitio-confiable.com.dominio-atacante.example/" alarga el nombre de host hacia la derecha y supera esa comprobación, por lo que conviene analizar la URL, extraer el nombre de host y exigir una coincidencia exacta con la lista blanca. El segundo es dar por relativa cualquier cadena que empiece por barra: "//dominio-atacante.example/" se interpreta como URL relativa al esquema y lleva el navegador a otro dominio, así que los valores que empiezan por dos barras deben tratarse como URL externas.