SRI 是一项新的 W3C 规范,允许 Web 开发者确保托管在第三方服务器上的资源未被篡改。建议在从第三方源加载库时将 SRI 作为最佳实践使用。
在 MDN 上了解 如何使用子资源完整性。
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