我想在我的web应用程序中强制使用CSP作为一种安全措施。从服务器端,我已将策略设置为";允许";自我所有的资源。然而,有一个特定的前端node_module文件,它抛出了如下所示的错误。
CSP标头集为:script src'self'node_modules/aurelia webpack-plugin/runtime/nempty entry.js';script src elem'self';style-src'self';img src"self">
请帮忙,我已经试着找到解决方案一个多星期了!尝试的解决方案:
- 尝试前端使其忽略此文件,因为它是一个空文件。但我不能忽视它
- 尝试从服务器端通过更改规则来绕过此特定文件
TIA。
更新:错误消息UnCaught EvalError:拒绝将字符串评估为Javascript,因为在以下内容安全策略指令中,"unsafe eval"不是允许的脚本源:"script src"self">
位于/node_modules/orelia webpack-plugin/runtime/pempty-entry.js
文件似乎被允许加载,因为它是从同一个源加载的,并且您允许脚本src"self"。
问题似乎是文件中的代码执行了eval((、new Function((、setInterval((或setTimeout((,这需要允许"不安全的eval"。这很奇怪,因为文件应该是空的。您的控制台错误可能会为您提供一个指向违规代码的直接链接。
您可以将"unsafe eval"添加到脚本src中。这将使您的CSP不那么严格,但设置";script src"self"unsafe eval"而不是完全不使用CSP限制脚本。