SRI Hash 在线生成器


          

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

SRI 是一种新型 W3C 规范, 让开发人员确保托管在第三方服务器上的资源不会被篡改. 当从第三方来源加载库时,如 BootCDN、StaticFile 和 ZStatic.net, 建议使用 SRI 作为最佳实践.

在 MDN 上了解如何使用 SRI.


子资源完整性 (SRI) 和 HTTPS 的区别?

TLS 确保浏览器和服务器之间的连接是安全的, 但攻击者仍可能在服务器端修改资源本身以包含恶意内容,即便 TLS 证书有效. 另一方面,SRI 保证资源自 Web 作者散列后没有被更改.


如何生成 SRI Hash 值?

使用我们的在线生成器或以下 shell 命令:
openssl dgst -sha384 -binary FILENAME.js | openssl base64 -A


为什么需要 crossorigin="anonymous" ?

当请求并非同一来源时, crossorigin 属性必须存在以检查文件的完整性.
如果没有 crossorigin 属性, 浏览器将选择 "fail open", 意味着它将像未设置完整性属性一样加载资源, 从而失去了 SRI 带来的所有安全性.

crossorigin="anonymous" 不会将信息发送至第三方服务器. 但是, 它会发送 Origin HTTP 响应头. 如果服务器拒绝包含资源 (通过不设置 Access-Control-Allow-Origin 响应头), 则该资源不会被浏览器使用.
你可以在 MDN 上了解更多.


测试你的浏览器

caniuse.com 上查看特定浏览器版本支持信息.

要全面测试您的浏览器对 SRI 的支持, 请打开 这个页面.

通过

浏览器支持 SRI

失败

浏览器不支持 SRI