Lo que tienes no me parece una redirección abierta.
Primero, este código está haciendo un XMLHttpRequest o lo que generalmente llamamos una solicitud ajax. XMLHttpRequest está restringido por la misma política de origen y, por lo tanto, nunca podrá pasarle un dominio malicioso porque el método simplemente se bloqueará si no es el mismo dominio.
Segundo, estás usando location.pathname
. Lo que location.pathname
te devuelve es una URL relativa al host actual. Esto significa que la url completa siempre será {current_host} / url en su código. Por lo tanto, nunca accederá a un host malicioso por error.
Tercero, no tienes entrada de usuario. Por lo general, la vulnerabilidad de redireccionamiento abierto se encuentra en la página de inicio de sesión, que a menudo contiene un returnUrl como parámetro en la url para redirigir al usuario a la página de la derecha una vez que ingrese. sitio. Entonces, para tener la vulnerabilidad, necesitas tener una entrada de usuario en algún lugar. ¿Dónde está tu entrada de usuario?
En conclusión, no creo que esta parte del código sea vulnerable a la redirección abierta, pero otra parte podría ser.
Nota
La fortaleza de la vulnerabilidad de redireccionamiento abierto es que utilizan su confianza en un sitio web que usted conoce bien para ganarse su confianza en su sitio web malicioso. Por ejemplo, si inicia sesión con google y luego se le redirige a malware_site.com, es más probable que confíe en malware_site.com ya que cree que está relacionado con google, incluso si no tienen ninguna relación.