Angular 角5&;CSP-拒绝将字符串作为JavaScript求值,因为';不安全评估';不是允许的脚本源
我目前正在尝试将内容安全策略引入到使用Angular 5构建的应用程序中。我目前正在使用index.html中的Angular 角5&;CSP-拒绝将字符串作为JavaScript求值,因为';不安全评估';不是允许的脚本源,angular,content-security-policy,Angular,Content Security Policy,我目前正在尝试将内容安全策略引入到使用Angular 5构建的应用程序中。我目前正在使用index.html中的meta标记来实现CSP,不过我将来会对此进行更改。我已将以下内容插入我的应用程序 <meta http-equiv="Content-Security-Policy" content="script-src 'self'; img-src 'self' data:;media-src 'self'; object-src 'self' data: 'unsafe-eval';
meta
标记来实现CSP,不过我将来会对此进行更改。我已将以下内容插入我的应用程序
<meta http-equiv="Content-Security-Policy" content="script-src 'self'; img-src 'self' data:;media-src 'self'; object-src 'self' data: 'unsafe-eval'; style-src 'self' https://fonts.googleapis.com 'unsafe-inline';">
这基本上满足了我的需求,但是当我部署到测试服务器时,浏览器控制台会给我以下消息:
Uncaught EvalError:拒绝将字符串作为JavaScript求值,因为
“不安全评估”不是以下脚本中允许的脚本源
内容安全策略指令:“脚本src'self'”
好的,我需要将'safe-eval'
添加到脚本src
指令中。这不是一个真正的问题,但它确实让我担心,记住eval()是邪恶的
对于希望使用CSP的Angular 5应用程序,是否必须在指令脚本src
中包含'safe-eval'
?是否有办法保留安全功能,防止使用eval()
?是否有必要将其作为角度使用纳入eval()
。我假设contentsecuritypolicy元标记的内容是正确的,尽管我确信可能不是这样
我在angular github上读到这个问题,但我不确定这个问题是否与我有关,因为我在应用程序中使用的不是SystemJS而是webpack
非常感谢您提供的帮助、答案和建议。我也遇到了同样的问题,我注意到在--prod模式下运行不会出现错误(我使用的是Angular 8) 根据您的设置,您可以使用客户端响应头来实现安全策略,因为这不会导致此错误 如果您的问题只与在调试模式下运行(使用元标记)有关,那么这不是您的解决方案