Un open redirect parece inofensivo — tu app solo manda al usuario a algún lado tras login. Pero si ese "algún lado" viene de un parámetro que no validás, un atacante usa tu dominio confiable como trampolín a su página de phishing.
Cómo funciona
https://sitio-confiable.com/login?next=https://evil.example.com
# Tras el login, la víctima aterriza en evil.example.comLa carnada es que el link arranca en un dominio que la víctima confía. Clickea, redirigís, y está en un login falso idéntico. Los open redirects también se encadenan para robo de tokens OAuth cuando el redirect URI no se valida estricto.
Cómo arreglarlo
- No redirijas a input crudo del usuario.
- Solo rutas relativas. Aceptá
/dashboard, rechazá cualquier cosa con esquema o host. - Allow-list de destinos externos.
- Validá redirect URIs de OAuth con match exacto (sin wildcards).
- Cuidado con trucos (
//evil.com, encoded): validá el resultado parseado, no el string crudo.
const next = url.searchParams.get('next') || '/'
const safe = next.startsWith('/') && !next.startsWith('//') ? next : '/'Nurbak escanea tu app por open redirects y el resto del checklist de seguridad de APIs.

