首页 > 解决方案 > 如何通过 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>

我尝试添加sandboxiframe,但它不起作用,XSS 警报仍然显示。

我应该怎么做才能处理我的问题?

非常感谢您的帮助。

标签: javascripthtmlsecurityiframexss

解决方案


通过为沙盒设置“允许同源”解决了该问题

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

推荐阅读