SRI 哈希生成器

 

什么是 SRI(子资源完整性)?

SRI 是一个新的 W3C 标准,允许网络开发者确保托管在第三方服务器(如 CDN)上的资源没有被篡改。从第三方来源加载库时,建议使用 SRI。

在 MDN 上了解如何使用 SRI


SRI 与 HTTPS 有什么不同?

TLS 确保浏览器和服务器之间的连接是安全的,但是资源本身仍然可能被攻击者在服务器端修改,以包含恶意内容。这些恶意内容仍然可以通过有效的 TLS 证书提供服务。而 SRI 则保证了资源在哈希后没有改变。


如何生成 SRI?

使用上面的生成器或下面的 shell 命令:
openssl dgst -sha384 -binary FILENAME.js | openssl base64 -A


为什么需要包含 crossorigin="anonymous"?

当请求不同源时,必须设置 crossorigin 属性,才会检查文件的 SRI 哈希值。
如果没有设置 crossorigin 属性,在 SRI 错误时,浏览器会遵循 fail-open 策略,加载 SRI 错误的文件。
可以在 MDN 上找到更多信息。


测试你的浏览器

caniuse.com 提供了特定版本浏览器的 SRI 可用性信息。

如果想全面测试 SRI 兼容性,请打开这个网页

测试通过

你的浏览器支持 SRI

测试未通过

你的浏览器不支持 SRI