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

CSP标记含eval的第三方脚本被阻止,但脚本仍正常加载运行?

CSP相关问题解答

环境与现象

Chrome(111)、FireFox(111)及MS Edge(111)表现一致,简化后的CSP请求头如下:

content-security-policy: default-src 'self';script-src 'self' blob: *.usercentrics.eu;connect-src 'self' *.usercentrics.eu;font-src 'self' data: ;img-src 'self' blob: data: *.usercentrics.eu;style-src 'self' 'unsafe-inline' ;frame-src 'self' ;object-src 'none';base-uri 'self';block-all-mixed-content;form-action 'self';frame-ancestors 'self';script-src-attr 'none';upgrade-insecure-requests

页面加载时,DevTools的Issues标签报告:网站的Content Security Policy阻止了第三方脚本https://app.usercentrics.eu/browser-ui/latest/bundle.js中'use of eval'的使用。但Network标签显示该脚本加载成功且似乎正常运行,检查脚本发现其确实包含不安全的new Function()字符串表达式。

疑问解答

1. 未配置script-src 'unsafe-eval'的情况下,含被标记为unsafe eval的脚本为何仍能加载?

CSP的script-src规则控制的是脚本资源的加载权限,而unsafe-eval是控制脚本内部动态代码执行的权限,二者是独立的控制维度:

  • 脚本能成功加载,是因为它的域名*.usercentrics.eu在script-src的允许列表中,浏览器允许从该域名获取脚本资源;
  • DevTools的报错是因为脚本内部执行new Function()时,没有unsafe-eval的授权,被CSP拦截。脚本加载成功不代表所有代码都能正常执行,可能部分依赖动态执行的功能已经失效,只是暂时未体现出来。

2. CSP头的评估机制是否存在漏洞,可被恶意利用绕过限制执行eval()函数?

主流浏览器的CSP对eval/new Function这类动态代码的拦截机制是成熟可靠的,不存在通用的可被恶意利用的漏洞。你看到脚本“似乎正常运行”,大概率是因为该脚本的核心功能不依赖被拦截的new Function()代码,或者内置了降级逻辑来规避拦截。如果真出现可利用的绕过方式,那属于浏览器的安全漏洞,会被厂商及时修复,而非CSP机制本身的设计缺陷。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 17:47:32