内容安全策略:拒绝执行内联脚本



>我正在尝试实施内容安全策略。

我的HTML文件不包含任何JavaScript代码,除了包括外部js文件。但控制台仍然说:

拒绝执行内联脚本,因为它违反了以下内容安全策略指令:

所以我的问题是:

  1. 是否包含一个外部JavaScript文件,例如<script src="https://code.jquery.com/jquery-1.12.4.js"></script>被视为"内联脚本"?

  2. 如果是这样,我该怎么做才能通过 CSP 允许这些脚本?我已经尝试在我的脚本中使用nonce,但它总是说:

    未定义的属性名称(随机数(

  3. 开发工具(例如谷歌浏览器(是否提供了一个功能来查看哪个内联脚本导致错误?

谢谢

  1. 在此上下文中,包含外部 JS 文件不被视为"内联脚本"。在 script-src 属性中指定外部源就足够了,例如script-src 'self' https://code.jquery.com/jquery-1.12.4.js
  2. 由于外部文件不被视为内联脚本,因此我不需要使用随机数或哈希。但此处提供了信息
  3. 在谷歌浏览器的开发工具中,我没有找到任何导致错误的行或外部JS文件的信息。相反,我使用了Firebug。至少提到了导致错误的行。有了这个帮助,你可以很容易地消除被忽视的DOM元素。

但真正对我有帮助的是写在这里。

始终定义默认 src 非常重要。否则,指令将默认允许所有资源

就我而言,将default-src 'self'添加到CSP可以消除错误!

相关内容

最新更新