W3C 标准,允许网络开发者确保托管在第三方服务器(如 CDN)上的资源没有被篡改。从第三方来源加载库时,建议使用 SRI。
在 MDN 上了解如何使用 SRI。
TLS 确保浏览器和服务器之间的连接是安全的,但是资源本身仍然可能被攻击者在服务器端修改,以包含恶意内容。这些恶意内容仍然可以通过有效的 TLS 证书提供服务。而 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