SRI 哈希生成器


          

什么是子资源完整性?

SRI 是一项新的 W3C 规范,允许 Web 开发者确保托管在第三方服务器上的资源未被篡改。建议在从第三方源加载库时将 SRI 作为最佳实践使用。

在 MDN 上了解 如何使用子资源完整性


子资源完整性与 HTTPS 有何不同?

TLS 确保浏览器与服务器之间的连接是安全的。资源本身仍可能在服务器端被攻击者修改以包含恶意内容,但仍使用有效的 TLS 证书进行服务。另一方面,SRI 保证资源自被网页作者进行哈希后未发生更改。


如何生成完整性哈希?

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


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

当请求不是同源时,必须使用 crossorigin 属性来检查文件的完整性。
如果没有 crossorigin 属性,浏览器将选择“开放失败”,这意味着它将加载资源,就好像未设置完整性属性一样,从而失去了 SRI 带来的所有安全性。

crossorigin="anonymous" 表示不会向托管内容的跨源站点发送凭据。但是,它会发送一个 Origin HTTP 头。如果服务器拒绝包含该资源(未设置 Access-Control-Allow-Origin HTTP 头),浏览器将不会使用该资源。
您可以在 MDN 找到更多信息。


测试您的浏览器

请访问 caniuse.com 上的 SRI 查看特定浏览器版本的支持信息。

要充分测试浏览器对子资源完整性的支持,请打开 此页面

通过

您的浏览器支持 SRI

失败

您的浏览器不支持 SRI