firefox iframe中的CSP标头在整个页面上使用动态内容

时间:2017-10-10 10:51:42

标签: html firefox iframe content-security-policy

在我看来,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:”)。

这是一个错误吗?有没有解决方法?提前谢谢。

1 个答案:

答案 0 :(得分:4)

点击网址&#34; about:config&#34; 进入Firefox配置并搜索security.csp并将值设为&#34; false&#34;即..禁用标志。

这是屏幕截图:

enter image description here

注意 - 这只是一种解决方法,因为它会降低您的系统安全性。

更好的解决方案是检查

  1. 您的csp标头是什么,并将标头更改为适当的策略。

    以下是了解严格csp和政策的链接:

  2. https://csp.withgoogle.com/docs/index.html