读完这篇文章后,我没有一个明确的答案:
http://palizine.plynt.com/issues/2010Oct/bypass-xss-filters/ http://palizine.plynt.com/issues/2010Oct/bypass-xss-filters/
The MSDN 文档 http://msdn.microsoft.com/en-us/library/cc848897说 IE 不:
出于安全原因,数据 URI 仅限于下载的资源。数据 URI 不能用于导航、脚本编写或填充框架或 iframe 元素。
另一方面,Mozilla 确实允许iframe https://bugzilla.mozilla.org/show_bug.cgi?id=296871 and script https://bugzilla.mozilla.org/show_bug.cgi?id=255107执行:
数据:继承其引荐来源网址的网址允许它们用于
生成或窗口内容,父级可以与之交互。壁虎
一直都是这样做的(而且我们分散了很多安全检查
周围这个就不用担心了)。
Safari https://bugs.webkit.org/show_bug.cgi?id=17352 and Chromium https://code.google.com/p/chromium/issues/detail?id=58999沙箱数据 URI 执行,有效地将它们视为跨域请求。
目前,我们将 data: URI 标记为无法访问任何其他来源,包括其他 data: URI。
HTML5 规范指出:
如果文档或图像是从作为 HTTP 重定向(或其他协议中的等效项)位置返回的 data: URL 生成的
来源是重定向到 data: URL 的 URL 的来源。
如果文档或图像是从另一个文档或脚本中找到的 data: URL 生成的
原点是调用导航算法时由现有设置对象指定的原点的别名,或者,如果不涉及脚本,则为启动到该 URL 的导航的元素的节点文档的别名。
如果以其他方式获取文档或图像(例如,用户输入的 data: URL、使用 createDocument() API 创建的文档、作为 HTTP 重定向位置返回的 data: URL 等)
来源是创建文档或图像时分配的全局唯一标识符。
RFC6454 补充道:
URI 不一定与其自身同源。例如,数据 URI [RFC2397] 与其自身不是同源的,因为数据 URI 不使用基于服务器的命名机构,因此具有全局唯一标识符作为源。
The CSSHTTPRequest 库 https://github.com/nbio/csshttprequest使用数据 URI 执行跨站点 GET 请求,但这是它在所有浏览器中最多可以执行的操作。
参考
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)