¿Por qué los navegadores permiten redireccionamientos desde páginas HTTPS a direcciones URL inseguras que provocan una descarga?

3

Sabemos que los navegadores no permiten el contenido mixto activo en las páginas servidas mediante HTTPS. Esto se debe a que JavaScript puede ser modificado por un MitM activo que podría comprometer la seguridad de la página. Muchos navegadores también bloquearán la carga de imágenes / otro contenido pasivo desde una fuente insegura por un número de razones .

¿Por qué, entonces, es posible que un sitio servido a través de HTTPS redirija a una URL HTTP con un encabezado Content-Disposition: attachment o Content-Type: binary/octet-stream que obliga a una descarga?

Por ejemplo, esta página de descarga se publica inicialmente HTTPS, pero redirige al usuario a una URL de descarga insegura. Chrome simplemente descarga el archivo a ciegas y no presenta información sobre su origen. Firefox muestra el origen en su cuadro de diálogo de descarga, pero aún así permite que la descarga continúe y no advierte al usuario en absoluto:

Dado que un usuario que descarga y ejecuta un código arbitrario como este (que cree que proviene de un sitio seguro) puede causar mucho más daño que algunos JavaScript inyectados, ¿por qué los navegadores permiten este comportamiento? ¿Por qué no se obliga a estas descargas a ser servidas de manera segura como los scripts incluidos?

    
pregunta Adam Williams 19.12.2016 - 22:26
fuente

1 respuesta

2

Se trata de respetar la elección del usuario. En general, desea que el usuario decida qué quiere hacer.

Las aplicaciones descargadas son inertes. El hecho de que haya descargado un virus no daña inmediatamente el sistema hasta que lo ejecuta.

En cualquier caso, con las aplicaciones descargadas de Internet, el sistema operativo preguntará al usuario si desea permitir la ejecución de la aplicación. En Windows, aparece una ventana de solicitud, en Linux, tendría que configurar el permiso de ejecución. Además, las aplicaciones antivirus escanean las aplicaciones descargadas que se están escribiendo / leyendo. Hay poca necesidad de que el navegador le pida al usuario que lo haga.

Windows también admite la firma criptográfica que pueden usar los usuarios conscientes de la seguridad para demostrar la integridad de la aplicación descargada. En Linux, esto lo hace el administrador de paquetes.

¿Por qué esto no se aplica a JavaScript? Bueno, generalmente los usuarios no eligen ejecutar archivos JavaScript individuales, sino que son un efecto secundario de visitar un sitio. Y con JavaScript de una fuente sin cifrar, es trivial para un atacante MITM modificar el script sin que el usuario lo sepa.

    
respondido por el Lie Ryan 20.12.2016 - 01:02
fuente

Lea otras preguntas en las etiquetas