【发布时间】:2021-06-30 15:56:12
【问题描述】:
我正在尝试对网页实施子资源完整性。我有一个基于某些变量动态构建的内联 javascript,
https://example.com/<DYNAMIC_VALUE>.js
为指定为 URL 一部分的每个动态值呈现文件的单独内容。由于完整性哈希是根据内容计算的,因此实际上不可能预先计算脚本标签的哈希(因为 DYNAMIC_VALUE 可以是 1001、1002、...n)。
<-- script src="https://example.com/<DYNAMIC_VALUE>.js" integrity="???" crossorigin="anonymous">
</script -->
对于这种涉及动态变量的场景,SRI 是否有任何最佳实践?谢谢!
【问题讨论】:
-
"我正在尝试对网页实施子资源完整性。" - 为什么?你控制传递脚本文件的服务器吗?
-
"真的不可能预先计算哈希" - 好吧,也许不能预先计算它,但你仍然可以计算它动态值变化的时间。
-
@Bergi 非常感谢!我提到我正在尝试将哈希添加到脚本标记中的完整性。我的第三方内容将根据我的主要 javascript 中的某些参数动态加载。是否可以将某些潜在哈希的组合添加到第 3 方 javascript 文件的脚本标记的完整性?
-
否,但如果您有白名单,您可以计算允许的动态值与其各自脚本哈希的映射,然后决定使用哪个
integrity。
标签: javascript security user-interface websecurity subresource-integrity