Si tuviera un sitio web enlace que redireccionara a enlace a través de javascript (con un HTTP/1.1 403 Forbidden
), ¿cuáles son los vectores de ataque que podrían ser vulnerables también?
¿Por qué esto no es una buena práctica? (y la forma preferida es hacer un 301 desde el lado del servidor)
- ok SEO, mientras que se prefiere un 301 para los robots de búsqueda.
- inhabilita la secuencia de comandos en el navegador, estás bloqueado
¿Algo más?
Para una sola cosa, según mi opinión, una fijación de sesión a través de MITM no es posible, al menos porque toda la respuesta bruta que me da es la siguiente. No hay ninguna cookie, en absoluto.
<html>
<head><title>hussh...</title></head>
<script language="JavaScript">
function redrToHttps()
{
var httpURL= window.location.hostname + window.location.pathname + window.location.search;
var httpsURL= "https://" + httpURL;
window.location = httpsURL;
}
redrToHttps();
</script>
<body>
No sé por qué muchos tutoriales en Internet recomiendan que lo hagas a través de javascript, mientras que un 301 permanente es una opción perfecta. AFAIK, no pude encontrar un vector de ataque en esta forma de redireccionamiento a través de javascript con 403 encabezado.
¿Me estoy perdiendo algo? ¿Hay algún vector de ataque que pueda enfrentar en el futuro? ¿Por qué no es esta la forma recomendada?
Editar:
Se me olvidó mencionar por qué publiqué esta pregunta. Ya he levantado una bandera para usar HSTS, faltaba en el sitio web en cuestión. Mi preocupación es que las personas que desarrollaron esta aplicación siguieron el primer enlace en google (en ese entonces, cuando se desarrollaron) para hacer esta redirección de http a https a través de javascript. Honestamente, esta es la primera vez que veo un http a https redirect para todas las páginas de la aplicación a través de javascript. No tengo que decirle lo malo que es, y estúpido el javascript https redirecciona los sonidos, incluso desde el principio. Pero miré la respuesta bruta, había un 403 que está bien (hey, estás prohibido), aunque no es la mejor manera de hacerlo.
El sitio nunca sirve ninguna información a través de http. Siempre utiliza el javascript para hacer la redirección hacer una nueva solicitud. Demasiado. Lo entiendo. Pueden ser sus respuestas / pensamientos acerca de cuán susceptible podría ser esto, ayudaría a vender por qué es una idea tan mala en términos de seguridad.
Me temo que este no es un posible duplicado, ya que ninguna pregunta en la red de stackexchange analiza las implicaciones de seguridad de una redirección de http a https a través de javascript en particular. Manteniendo las mejores prácticas aparte, agradecería sus ideas sobre cuán inseguro (y por qué) es este enfoque .
El script del lado del cliente personalizado que indica al navegador que navegue a una página diferente, y el navegador que responde a un 301 como en enlace tiene diferencias fundamentales, creo . ¿Hay alguna hazaña conocida demostrada en este caso?
Gracias.
Edición 2: ¿Alguien notó un 403? En IIS 6, si tenía habilitado, requiere HTTPS y si intentó acceder al sitio a través de HTTP y si no había configurado SSL correctamente, entonces eso es lo que obtendría una página de error 403 aburrida. La solución de solución rápida de antaño es atrapar un 403 en el servidor y devolver una página de error personalizada que contendría un código javascript como mencioné en la pregunta. Ese javascript solicitaría entonces la versión HTTPS de la página, que es una nueva solicitud del navegador y no una redirección de ningún tipo. Lo que en realidad es equivalente a una nueva solicitud https. Esto es mala, muy mala, mala implementación. Pero la pregunta ahora es, usted solicita un recurso en http, que le devuelve un 403 con algún script java que ayuda a poner https en la url para usted y, por lo tanto, emitir una nueva solicitud https. No es un 301/301 inducido por HTTPS. Puede ser el título de la pregunta que dice la palabra redireccionar, pero ahora tengo dudas sobre el nombre inapropiado ahora. Para poner las cosas en perspectiva, aquí hay una publicación - enlace que describe que estoy diciendo. Muy viejo post de hecho. ¿Cómo es esto una pregunta duplicada?