我正在尝试修改我的网络软件以使用内容安全策略。当我没有它编译时,一切运行良好。当我包含 CSP 标头时,Chrome 会在两个地方标记错误(使用 Chrome 开发人员工具):
- 每个 ASPX 或 HTML 文件的第一行中出现“拒绝执行内联脚本,因为它违反了内容安全策略...”错误 - 即使没有内联 JavaScript!
- “此上下文不允许从字符串生成代码”错误 - 这在 jquery-1.8.3.min.js 文件中有所说明,但似乎源自我编写的一些 JQuery,我在其中迭代来自 a 的数据用于在页面上生成项目的 Web 服务。
所以,有两个问题:为什么我总是被告知每个文件都是违规的,即使它只是一个纯静态 HTML 文件?
其次,内容安全真的意味着我在使用 JQuery 生成 html 时不能使用字符串——即使它位于专用的 .js 文件中?我查看了整个网络上的信息,但这个特定问题确实没有得到解决。那么......这里的规则是什么?
我真正想要的是防止 A) 内联 JavaScript 和 B) 加载外部 JS 文件。
任何帮助将不胜感激!
更新:当我将 JQuery/JQueryUI 升级到 1.8.2 / 1.9.1 时,字符串错误消失了。我之前使用的版本只有一个月大,所以这似乎是 JQuery 的最新改进。虽然我也一直在进行其他更改,但我不能确定这是 JQuery,但如果可以的话,使用更新的 JQuery 是有意义的。