在我的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加载脚本?
答案 0 :(得分:0)
Content Security Policy是缓解站点/应用程序上XSS(跨站点脚本)攻击的方法之一。
要允许您的站点/应用从cdnjs.cloudflare.com
加载脚本,您需要在script-src
HTTP响应标头的Content-Security-Policy
伪指令中添加/附加域。
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。