- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下面的这段代码在所有运行 http 的浏览器中都能正常工作
但是当我在 Safari 中使用 https 运行它时,这是行不通的。
它在 Chrome 中使用 http 和 https 都可以正常工作...
<iframe sandbox="allow-scripts" srcdoc="
<script>
var blob = new Blob(['abc']);
var fr = new FileReader();
fr.readAsText(blob);
fr.onerror = () => document.body.innerText = 'fail'
fr.onload = () => document.body.innerText = fr.result
</script>
"></iframe>
我猜这不是沙箱限制而是 content security policy可以通过正确的 csp 上下文解决的事情
我将其托管在静态页面上,因此我无法通过 header 解决它但是元标记也可以正常工作...
<meta http-equiv='Content-Security-Policy' content=' <duno> '>
所以这是我的问题:我需要使用什么 csp 才能允许读取 iframe 中的 blob?
我还创建了一个 fiddle为此
最佳答案
您永远无法使用 CSP 指令制定比已从其他地方应用的 CSP 政策创建的任何政策更自由的政策。例如,您不能使用在文档中使用 meta
指定的更自由的策略来覆盖更严格的 CSP header 。
参见 the stuff about multiple policies in the CSP spec :
The impact is that adding additional policies to the list of policies to enforce can only further restrict the capabilities of the protected resource.
因此,就 CSP 在这个 blob-with-iframe-sandbox-allow-script 案例中甚至完全相关的程度而言,如果您将其视为默认情况下自行应用限制性 CSP 策略的浏览器,我不会想象您可以使用 CSP header 或 meta
元素来放宽限制 — 相反,您只能使用 header 或 meta
元素来实现进一步的限制。
无论如何,有兴趣看看您对 https://bugs.webkit.org/show_bug.cgi?id=170075 的回复.
关于javascript - 在 Safari 上的安全沙盒 iframe 中读取 blob?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43019482/
我是一名优秀的程序员,十分优秀!