0

内容安全策略的#console 浏览器问题

拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src 'self'”。启用内联执行需要“unsafe-inline”关键字、哈希(“sha256-9X08/o2ns8hEbTzT0V1Xyn6yYc8qftFOKmH3KNb8dWo=”)或随机数(“nonce-...”)。[在此处输入图像描述][1]

#Image of the error 

  [1]: https://i.stack.imgur.com/7R9sp.png

为 CSP 编写的代码

frame-ancestors 'self' https:
script-src 'self';
object-src 'none';
base-uri 'none';
style-src 'self' fonts.googleapis.com 'unsafe-inline';
media-src *;
img-src 'self';
4

2 回答 2

0

'self' 的 script-src 指令仅允许将脚本作为来自同一域的脚本文件加载。您的页面还包含需要在 CSP 中获得权限才能运行的内联脚本。你有几个选择:

  1. 将脚本代码移动到托管在同一域中的单独 .js 文件中。如果您使用不同的主机,则需要在 script-src 指令中允许该主机。
  2. 添加“不安全内联”。这将允许所有内联脚本,这将几乎消除 CSP 能够提供的 XSS 保护。
  3. 将建议的哈希值“sha256-9X08/o2ns8hEbTzT0V1Xyn6yYc8qftFOKmH3KNb8dWo=”添加到允许这个脚本的 script-src。如果只允许一个或几个内联脚本,这是一个很好的解决方案。
  4. 添加一个随机数。随机数应该在每次页面加载时都发生变化,如果您能够正确注入随机数,那么它是动态脚本的一个很好的解决方案。
于 2022-01-03T12:18:18.147 回答
0

该错误似乎表明使用内联脚本存在问题。看起来像

    <script>
            your codes
    </script>

如果您要使用内联脚本,请将 'unsafe-line' 添加到 script-src 指令。

当前设置仅允许来自您的域的脚本。

例如)<script src="/yourDomain/public/yourScript.js">

于 2021-12-28T01:51:15.303 回答