【问题标题】:SubResource Integrity for dynamic changing Javascript files?动态更改 Javascript 文件的子资源完整性?
【发布时间】: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


【解决方案1】:

我使用这个插件来处理我的构建文件: https://github.com/emmercm/metalsmith-html-sri

我在构建完成后使用了一个钩子来运行它。我希望这对您有所帮助或让您足够接近。

【讨论】:

    猜你喜欢
    • 2016-11-02
    • 1970-01-01
    • 2017-10-18
    • 2016-07-05
    • 2017-12-22
    • 2017-12-24
    • 2016-02-22
    • 2018-07-23
    • 2019-03-09
    相关资源
    最近更新 更多