如何通过iframe防止存储XSS



我使用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警报仍然显示。

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

我应该怎么处理我的问题?

非常感谢你的帮助。

问题由集合"允许相同的原点";用于沙箱

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

最新更新