¿Por qué los enlaces locales están deshabilitados de forma predeterminada en los navegadores modernos?

5

Me cuesta mucho hacer que mis archivos locales sean accesibles a javascript (para abrir en una nueva ventana) desde Chrome, y ya encontré una solución en Firefox. Mi pregunta es: ¿por qué javascript no puede abrir un archivo en una nueva ventana del navegador (con window.open ) de forma predeterminada? No puedo ver ningún problema de seguridad con esto.

Lo único que estoy leyendo en todas partes sobre este tema es: "Los sitios web no deberían tener acceso a mi disco para leer archivos". Pero javascript en realidad no puede leer el contenido de los archivos debido a la política del mismo origen . Puedes probarlo como abajo.

Por ejemplo, en la configuración de NoScript puede seleccionar Avanzado > De confianza y marcar "Permitir enlaces locales". Ahora abra la consola de Firefox y ejecute (debería permitir las ventanas emergentes para esto):

x = window.open('file:///%some_path_to_text_file%')
x.document

Estoy obteniendo 'Error: Permiso denegado para acceder a la propiedad "documento" [Más información] '. Entonces, ¿cuál es el problema? ¿Es seguro mantener la opción "Permitir enlaces locales" en NoScript todo el tiempo?

    
pregunta Wolfram 13.03.2017 - 12:33
fuente

1 respuesta

3

Si el navegador puede abrir un archivo desde la computadora, podría ver a un actor malintencionado descargar una carga útil de exploits del navegador en la computadora del usuario y luego hacer que el js abra ese archivo explotando algo en el navegador.

En este caso, el atacante tendría que tener un exploit para el navegador del usuario que atacó la forma en que el navegador lee un archivo. Estas hazañas son bastante comunes.

También podría ser posible que el atacante descargue un archivo a la computadora del usuario que luego usa su contexto a nivel del sistema para capturar otros archivos y filtrarlos a través de incrustarlos en el src de una imagen (he usado este antes) ). Pero no estoy 100% seguro de que un archivo que se ejecuta en el navegador local pueda acceder a otros archivos, tal vez alguien más pueda acceder a eso o construiré una prueba de concepto si obtengo tiempo adicional.

En la mayoría de los casos, no es una buena idea combinar el contenido de Internet con el local.

    
respondido por el MikeSchem 14.03.2017 - 01:10
fuente

Lea otras preguntas en las etiquetas