subresource-integrity - 子资源完整性和性能

标签 subresource-integrity

我正在阅读 Subresource Integrity但我担心性能损失。这(必须在执行每个文件之前对其进行哈希处理)如何减慢页面加载速度,尤其是在具有低级 CPU 的设备上?

最佳答案

我今天运行了一个性能基准测试,并在为 120KB Twitter Bootstrap 缩小的 CSS 文件生成哈希时观察到以下平均值。

File Size: 121200
SHA1   Time: 0.50199 ms
SHA256 Time: 0.89691 ms
SHA384 Time: 1.59249 ms
SHA512 Time: 1.58901 ms
SHA1被认为是不安全的,可能无法正常工作。所以,如果你使用 SHA256 ,您可以预期通用设备上每个资源的总体延迟小于 1 毫秒。我在性能不是很好的一年半的 Corei5 ASUS 笔记本电脑上运行了这个基准测试。此外,120KB 略高于平均水平。大多数静态文件更小,更小的文件大小意味着更快的哈希生成。

基于这些基准,如果我用每资源 1 毫秒的成本来衡量使用 SRI 的好处,我会更喜欢使用 SRI,因为成本几乎可以忽略不计。正如您在评论中所说,黑客进入大型 CDN 提供商服务器的变化不容忽视。我会指给你一个past incident黑客注入(inject)他们自己的 javascript 来攻击 IE 用户。

关于subresource-integrity - 子资源完整性和性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36093920/

相关文章:

angularjs - 使用 Require JS 的 angularJS 应用程序中的子资源完整性

javascript - 使用 javascript 实现图像的子资源完整性

javascript - 类型错误 : Cannot read property 'tap' of undefined when adding webpack-subresource-integrity

attributes - 如何使用 SRI 哈希和 "onload"属性

html - 最佳 SRI 哈希大小是多少?

javascript - HTML 中完整性属性的用途是什么?

javascript - Angular-Cli 的子资源完整性