由于内容安全政策

时间:2019-08-20 14:22:38

标签: facebook cloudflare facebook-instant-games

在我的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。净* .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加载脚本?

1 个答案:

答案 0 :(得分:0)

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

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

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。