RPT*_*RPT 3 html javascript css sandbox content-security-policy
我正在使用 iFrame 来包含外部 html 源https://good.com/main.html
<iframe src=\xe2\x80\x9chttps://good.com/main.html" scrolling="no" style="overflow: hidden; height: 700px;"></iframe>\nRun Code Online (Sandbox Code Playgroud)\n\n但good.com/main.html导入并执行以下 javascript
https://good.com/a.js\nhttps://good.com/b.js\nhttps://bad.com/c.js\nRun Code Online (Sandbox Code Playgroud)\n\n有没有办法阻止good.com/main.html导入和执行bad.com/c.js?https://good.com更具体地说,阻止任何与?不具有相同域的资源。
我尝试对iFrame进行沙箱处理
\n\n<iframe sandbox=\xe2\x80\x9callow-same-origin allow-scripts\xe2\x80\x9d src=\xe2\x80\x9chttps://good.com/main.html\xe2\x80\x9d scrolling="no" style="overflow: hidden; height: 700px;"></iframe>\nRun Code Online (Sandbox Code Playgroud)\n\n但它仍然导入并执行https://bad.com/c.js
有没有办法阻止源导入并执行任何外部js?
\n\n我读到有关iFrames 上的 CSP 的信息,但我不确定它\xe2\x80\x99s 的用法。
\n从广义上讲,你不能。iframe 有自己的 CSP,您无法从父页面传递策略。
也就是说,您在问题中链接到的 iframe 元素的“csp”属性在某种程度上允许这样做。它允许您请求iframe 源应用您在“csp”属性中设置的 CSP;但你不能强制执行,只能要求。所以理论上你可以这样做:
<iframe csp="default-src 'none';" ...>
iframe 的源可能会也可能不会实现您请求的 CSP。
请注意,这是全新的,并且(据报道)仅在 Chrome 和 Opera 中受支持。
| 归档时间: |
|
| 查看次数: |
2967 次 |
| 最近记录: |