假设有A,B,C,D和E. js文件存在于CDN中,但我们只使用B和C.目前csp中script-src允许所有的js从CDN下载的文件但我想将下载限制为B和C我的申请?这可以在内容安全策略配置中完成吗?
<add name="Content-Security-Policy" value="default-src 'self'; script-src 'self' https://cdnjs.cloudflare.com />
-
您可以使用路径在内容安全策略中(路径应该有一个尾斜杠)。例如:
script-src cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/;
允许从指定路径加载任何脚本,例如https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js
或https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js
,
但不允许https://cdnjs.cloudflare.com/ajax/libs/jquery/2.6.1/jquery.js
。
-
您可以指定确切的文件名如:
script-src cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js;
这将只允许指定的脚本。
请记住,如果你的web应用程序(或CDN)允许打开重定向,上面可以绕过,因为CSP不会检查重定向的路径。所以:
<script src='https://your_domain.com.com/?redirect=https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.4/vue.js'>
允许加载vue.js脚本。