散列违反 CSP
CSP violation with hash
我有一个由
导入的 JS 文件
<script src="https://example.com/file.js"/>
并且我有一个 CSP 策略,其中包含将此文件的输出粘贴到以下位置时生成的哈希值:https://report-uri.com/home/hash
但我仍然收到一条错误消息,说它违反了这个 SHA256 校验和。我究竟做错了什么?那不是应该有文件的校验和吗?
外部文件的哈希仅在 CSP 级别 3 中受支持,https://www.w3.org/TR/CSP3/#external-hash。许多浏览器仍然只支持级别 2。
对于 CSP 2 级浏览器,您需要包含实际的主机名,例如 example.com。您可以使用子资源完整性(SRI 哈希)实现相同的脚本白名单。
report-uri.com
do not 计算外部脚本的哈希值,它仅适用于字符串。因此,它只是从输入的 file_name 字符串而不是文件内容中计算哈希值。
可以计算外部文件的正确哈希值,例如 here.
并且不要忘记将 integrity=
属性添加到 <script src='...' integrity='...'>
.
注意,Mozilla Firefox not support hash-sources 用于 外部 脚本,但仅用于内联。
Safari - 与 Firefox 相同(至少 Safari 12.1.1)。
'strict-dynamic'
代币也不像 2020 年 12 月那样
我有一个由
导入的 JS 文件<script src="https://example.com/file.js"/>
并且我有一个 CSP 策略,其中包含将此文件的输出粘贴到以下位置时生成的哈希值:https://report-uri.com/home/hash
但我仍然收到一条错误消息,说它违反了这个 SHA256 校验和。我究竟做错了什么?那不是应该有文件的校验和吗?
外部文件的哈希仅在 CSP 级别 3 中受支持,https://www.w3.org/TR/CSP3/#external-hash。许多浏览器仍然只支持级别 2。
对于 CSP 2 级浏览器,您需要包含实际的主机名,例如 example.com。您可以使用子资源完整性(SRI 哈希)实现相同的脚本白名单。
report-uri.com
do not 计算外部脚本的哈希值,它仅适用于字符串。因此,它只是从输入的 file_name 字符串而不是文件内容中计算哈希值。
可以计算外部文件的正确哈希值,例如 here.
并且不要忘记将integrity=
属性添加到<script src='...' integrity='...'>
.注意,Mozilla Firefox not support hash-sources 用于 外部 脚本,但仅用于内联。
Safari - 与 Firefox 相同(至少 Safari 12.1.1)。'strict-dynamic'
代币也不像 2020 年 12 月那样