上的 XSS 数据 URI 是否可被利用?

2024-02-20

读完这篇文章后,我没有一个明确的答案:

http://palizine.plynt.com/issues/2010Oct/bypass-xss-filters/ http://palizine.plynt.com/issues/2010Oct/bypass-xss-filters/

  • 浏览器会解释 text/html 数据 URI 负载吗<img> src作为一个文档,其中<script>标签被执行?

  • 如果不是,那么在第三方 HTML 中允许数据 URI 是否安全?

  • 对于此用例,浏览器级别存在哪些安全机制?


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 请求,但这是它在所有浏览器中最多可以执行的操作。

参考

  • HTML 生活标准:起源 https://html.spec.whatwg.org/multipage/browsers.html#origin

  • RFC 6454:Web 起源概念 https://www.rfc-editor.org/rfc/rfc6454

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

上的 XSS 数据 URI 是否可被利用? 的相关文章

随机推荐