我正在阅读 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/