【问题标题】:Is there a way to specify script integrity of modules? [duplicate]有没有办法指定模块的脚本完整性? [复制]
【发布时间】:2020-11-11 15:57:17
【问题描述】:

我对页面上的普通脚本使用子资源完整性,但目前不用于 JavaScript 模块。

我假设指定包含在脚本标记中的模块的完整性类似于下面的What are the integrity and crossorigin attributes?,只是附加了type="module"。这是正确的吗?

如何指定包含在其他模块中的模块的完整性(例如 import * as blah from "blah.js";)?

有没有办法指定这些导入的完整性?是否可以在 HTML 中的一个位置(例如在模块预加载中)全部指定它们,所以如果一个模块的深层发生变化,并非所有使用它们的模块的完整性也会发生变化?

【问题讨论】:

  • 请注意,there is actually a way,目前仅在 Blink 浏览器中。
  • @Kaiido 是的,我现在正在使用它。遗憾的是,目前只有 Blink 浏览器支持它......

标签: javascript html integrity


【解决方案1】:

AFAIK“完整性”属性用于“验证”另一台服务器上的内容是否仍然相同(相同的 SHA-sum,未进行操作)。

因此,您可以使用它来包含托管在第三方服务器上的资源,例如 CDN

如果您导入 * as blah 的文件来自您的本地目录,则可能不需要检查操作,如果您想检查完整性,您可以使用脚本标签导入它们或查看以下链接:

Subresource integrity for es6 import

最后只是比较文件的sha-sum,你可以自己做

在这个链接中基本上是关于它的所有内容 https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity

【讨论】:

    猜你喜欢
    • 2013-07-23
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    相关资源
    最近更新 更多