繁体   English   中英

如何在iFrame上使用CSP

[英]How to use CSPs on iFrames

我正在使用iFrame包含外部html源https://good.com/main.html

<iframe src=“https://good.com/main.html" scrolling="no" style="overflow: hidden; height: 700px;"></iframe>

但是good.com/main.html导入并执行以下javascript

https://good.com/a.js
https://good.com/b.js
https://bad.com/c.js

有没有办法防止good.com/main.html导入和执行bad.com/c.js 更具体地说,是否阻止与https://good.com具有不同域的资源?

我尝试将iFrame 沙盒化

<iframe sandbox=“allow-same-origin allow-scripts” src=“https://good.com/main.html” scrolling="no" style="overflow: hidden; height: 700px;"></iframe>

但是它仍然会导入并执行https://bad.com/c.js

有没有一种方法可以防止源代码导入和执行任何外部js?

在iFrames上读到有关CSP的信息 ,但是我不确定它的用法。

从广义上讲,您不能。 iframe拥有自己的CSP,您无法通过父页面传递策略。

也就是说,您在问题中链接到的iframe元素的“ csp”属性在某种程度上允许这样做。 它允许您请求 iframe源应用在“ csp”属性中设置的CSP。 但您不能执行它,只能问一下。 因此,您可以从理论上做到:

<iframe csp="default-src 'none';" ...>

iframe的源可能会或可能不会实现您请求的CSP。

请注意,这是全新的,并且(据报道)仅在Chrome和Opera中受支持。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM