【问题标题】:How can prevent Stored XSS by iframe?如何通过 iframe 防止存储型 XSS?
【发布时间】:2021-08-04 06:50:14
【问题描述】:

我使用 Extjs 和 JS 构建了一个对话框,可以在其中显示来自 DB 的我的 html 数据,该数据用 iframe 包装,如下所示:

<iframe name="ext-gen568" frameborder="0" src="javascript:;" style="width: 514px; height: 189px;">
<html>
<head> ... </head>
<body>
<br><br>
<blockquote type="cite"> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <p>Hello</p>
    <video><source src="x" onerror="alert('xss')"></video>
</blockquote>
</body>
</html>
</iframe>

我尝试将sandbox 添加到iframe,但不起作用,XSS 警报仍然显示。

  • 然后我尝试更改为&lt;iframe src='#'... sandbox&gt;,但仍然显示 XSS 警报。
  • 我删除了src 或者只是在&lt;iframe src=''... sandbox&gt; 中设置了'',它得到了这个错误:DOMException: Blocked a frame with origin "mytestdomain" from accessing a cross-origin frame.

我应该如何处理我的问题?

非常感谢您的帮助。

【问题讨论】:

  • 您需要将标签列入白名单并这样做。
  • @Brad,我真的不明白你的想法。请您再解释一下好吗?

标签: javascript html security iframe xss


【解决方案1】:

该问题已通过为沙盒设置“allow-same-origin”解决

<iframe sandbox="allow-same-origin" src="javascript:;"...></iframe>

【讨论】:

    猜你喜欢
    • 2015-09-17
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 2013-05-20
    相关资源
    最近更新 更多