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

Angular环境下,CSP script-src配置所有JS哈希后是否仍需移除unsafe-eval?

Angular开发环境下,配置JS哈希后是否需要移除unsafe-eval?

从纯安全角度来看,必须移除unsafe-eval,但要注意Angular开发环境的默认运行机制会依赖这个指令,直接移除会导致应用无法正常工作,得结合实际情况处理:

为什么安全上必须移除?

  • unsafe-eval是CSP规则中风险最高的指令之一,它允许页面执行任意动态生成的代码。就算你已经给所有JS文件配置了哈希白名单,只要保留unsafe-eval,攻击者一旦找到页面注入点,就能绕过哈希限制执行恶意代码,等于白做了哈希配置的安全加固。

开发环境的实际限制

  • Angular开发模式默认使用JIT即时编译,这个编译过程需要通过eval()或new Function()动态生成并执行代码,完全依赖unsafe-eval才能完成。如果直接移除这个指令,浏览器会拦截Angular的编译操作,页面会抛出CSP错误,根本跑不起来。

折中处理方案

  • 临时保留但限制环境访问:如果暂时不想改编译模式,至少要确保开发环境只对内网/本地开放,绝对不能暴露到公网,降低被攻击的风险。
  • 切换开发环境为AOT编译:Angular也支持在开发模式下启用AOT(提前编译),启用后就不再需要unsafe-eval。你可以在angular.json的对应项目配置里,将architect.build.options.aot设为true,这样既能遵循安全最佳实践,又不影响开发流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 00:25:59