You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过内容安全策略(CSP)阻止特定内部脚本文件

用CSP阻止特定内部JS文件的方案

CSP没有直接的「排除资源」语法,但可以通过精准管控允许的资源范围来实现阻止特定内部JS的需求,具体操作如下:

1. 拆分兜底规则,单独管控脚本

原规则里的default-src是所有资源的兜底项,要精准控制JS权限,建议单独配置script-src规则,把脚本管控从default-src中分离出来:
原规则:

img-src 'self' data:; default-src 'self' 'unsafe-inline'

可拆分为:

img-src 'self' data:; default-src 'self'; script-src 'self' 'unsafe-inline'

这样script-src专门负责JS文件的权限管控,灵活性更高。

2. 两种方式实现特定JS的阻止

方式一:用否定匹配(现代浏览器推荐)

如果要阻止的内部JS路径是/js/block-this.js,可以在script-src里先允许所有内部JS,再用!前缀排除目标文件:

img-src 'self' data:; default-src 'self'; script-src 'self' 'unsafe-inline' /js/* !/js/block-this.js;

注意:否定规则要放在允许规则之后,确保优先级正确;另外'unsafe-inline'如果能替换成nonce(随机值)或哈希值,安全性会更高。

方式二:精准列举允许的JS路径

如果担心否定语法的兼容性,可以明确列出所有需要允许的内部JS路径,完全不包含要阻止的文件:

img-src 'self' data:; default-src 'self'; script-src 'self' 'unsafe-inline' /js/allowed-1.js /js/utils/* /lib/vendor.js;

这种方式需要维护允许列表,适合内部JS数量较少的场景。

3. 验证规则效果

设置完规则后,打开浏览器开发者工具的控制台,查看是否有CSP相关报错,确认目标JS被成功阻止,同时其他合法脚本能正常加载。


内容的提问来源于stack exchange,提问作者Tersterz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 06:15:29