SRI 的完整性和跨源值是否保存在 package.json 中或其他地方?



这是bootstrap的官方CDN样式表:

<link rel="stylesheet" 
href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css"
integrity="sha384-Smlep5jCw/wG7hdkwQ/Z5nLIefveQRIY9nfy6xoR1uRYBtpZgI6339F5dgvm/e9B"
crossorigin="anonymous">

然而,在我的标记中,我不会对版本进行硬编码,因为它可能会更改,所以我会将其从构建系统或应用程序中提取出来。一个虚构的例子:

<link rel="stylesheet" href="https://foo.bar.com/jquery/$VERSION/all.min.js" />

正如您所看到的,$VERSION不是硬编码的。因此,我可以在构建过程中(在package.json中(更改我使用的版本,而不必编辑我的应用程序。

现在我想以同样的方式添加integrity。我希望我能在package.json中找到它,但对于bootsrap来说,它不在那里。我认为其他包裹也是如此。

我知道我可以这样计算:

echo -n "alert('Hello, world.');" | openssl dgst -sha384 -binary | openssl base64 -A

但我不想使我的构建系统过于复杂。

有没有什么地方可以让我在不需要硬编码的情况下获得这个值?我自动从我的项目的package.json(或node_modules/bootstrap中的那个(中提取版本,所以我希望为了完整性做一些类似的事情。

由于无法从package.json或包目录中的其他位置轻松访问该值,因此我使用了ssri-npm模块。

更多的工作,但似乎没有更好的方法。

相关内容

  • 没有找到相关文章

最新更新