【问题标题】:Facebook Instant Game fails to load scripts from cloudflare.com due to Content Security Policy由于内容安全政策,Facebook Instant Game 无法从 cloudflare.com 加载脚本
【发布时间】:2019-08-20 14:22:38
【问题描述】:

在我的 Facebook Instant Game 中,我尝试从 cloudflare.com 静态加载脚本,例如:

<script src="https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.7/es5-shim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.20.2/TweenMax.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pixi.js/4.8.5/pixi.min.js"></script>

但出现 Chrome 浏览器错误:

拒绝加载脚本“https://cdnjs.cloudflare.com/ajax/libs/es5-shim/4.5.7/es5-shim.min.js”,因为它违反了以下内容安全策略指令:“script-src 'self' 'unsafe-inline' 'unsafe-eval' *.facebook.com connect.facebook.net cdn.mixpnl.com *.google-analytics.com web.localytics.com *.googletagmanager.com blob:*.cloudfront.net *.amazonaws.com *.googleapis.com *.firebaseapp.com *.firebaseio.com * .8686c.com *.cncovs.com *.aliyun.com *.aliyuncs.com *.wsdvs.com *.console.re *.kunlunar.com *.layabox.com *.windows.net *.msecnd.net * .anysdk.com cdn.trackjs.com cdn.firebase.com *.kochava.com *.akamaized.net *.cocos.com *.hinet.net *.playfab.com code.createjs.com *.zdassets.com websdk .appsflyer.com”。请注意,'script-src-elem' 没有显式设置,因此 'script-src' 用作备用。

有没有办法从 cloudflare 加载脚本?

【问题讨论】:

    标签: facebook cloudflare facebook-instant-games


    【解决方案1】:

    Content Security Policy 是缓解对您的网站/应用程序的 XSS(跨站脚本)攻击的方法之一。

    要允许您的网站/应用从cdnjs.cloudflare.com 加载脚本,您需要在Content-Security-Policy HTTP 响应标头的script-src 指令中添加/附加域。

    example implementations的几个:

    httpd.conf:

    Header set Content-Security-Policy "script-src 'self' ...(snipped)... cdnjs.cloudflare.com;"

    nginx.conf:

    add_header Content-Security-Policy "script-src 'self' ...(snipped)... cdnjs.cloudflare.com;";

    然后确保在重新加载或重新启动 httpd/nginx 服务之前运行 checkconfig。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-06
      • 2020-02-19
      • 2019-04-15
      • 2015-07-22
      • 2016-10-03
      • 2017-04-24
      • 2014-11-10
      相关资源
      最近更新 更多