在我看来,iframe内容中的Content-Security-Policy元标记会阻止在我的主页中加载动态图像。此问题仅限Firefox(56版)。这是一个例子:
的test.html
</html>
<head></head>
<body>
<form>
<input type="button" id="btn" value="GO" />
</form>
<script type="text/javascript">
document.getElementById('btn').onclick = function() {
src = 'https://www.google.ru/logos/doodles/2017/fridtjof-nansens-156th-birthday-5694774550986752-s.png',
img = document.createElement('img');
img.src = src;
document.body.appendChild(img);
}
</script>
<img src="https://www.google.ru/logos/doodles/2017/fridtjof-nansens-156th-birthday-5694774550986752-s.png"/>
<iframe src="iframe.html"></iframe>
</body>
</html>
Iframe.html的
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src 'self' data:; script-src 'self' *.jquery.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; font-src 'self' data:;"></meta>
</head>
<body style="font-family: Arial; font-size: 13px;">
<br>
</body>
</html>
在任何其他浏览器中单击“GO”按钮后,您可以看到图像被添加到页面,但在Firefox中没有任何反应,并且出现控制台错误,说
内容安全策略:页面的设置阻止了加载 资源在 https://www.google.ru/logos/doodles/2017/fridtjof-nansens-156th-birthday-5694774550986752-s.png (“img-src file:// data:”)。
这是一个错误吗?有没有解决方法?提前谢谢。
答案 0 :(得分:4)
点击网址&#34; about:config&#34; 进入Firefox配置并搜索security.csp并将值设为&#34; false&#34;即..禁用标志。
这是屏幕截图:
注意 - 这只是一种解决方法,因为它会降低您的系统安全性。
更好的解决方案是检查
您的csp标头是什么,并将标头更改为适当的策略。
以下是了解严格csp和政策的链接: