1

在我的 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' 没有明确设置,

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

4

1 回答 1

0

内容安全策略是减轻对您的站点/应用程序的 XSS(跨站点脚本)攻击的方法之一。

要允许您的站点/应用程序从 加载脚本cdnjs.cloudflare.com,您需要在HTTP 响应标头的script-src指令中添加/附加域。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。

于 2019-08-21T15:08:30.060 回答