什么是子资源完整性(SRI)?
子资源完整性(SRI)是一种安全功能,使浏览器能够验证它们获取的文件(例如来自 CDN)没有被意外修改。它通过将资源的加密哈希与 HTML 中提供的哈希进行比较来工作。
工作原理:
- 生成资源文件的加密哈希
- 在 script 或 link 标签的 integrity 属性中包含哈希
- 浏览器获取资源并计算其哈希
- 浏览器将计算的哈希与提供的哈希进行比较
- 如果哈希匹配,资源加载;如果不匹配,加载被阻止
优势:
- 安全性:防止第三方资源被恶意修改
- CDN 保护:确保 CDN 提供的文件没有被篡改
- 供应链安全:验证外部依赖项的完整性
- 浏览器支持:在现代浏览器中广泛支持
支持的算法:
- SHA-256(推荐最低)
- SHA-384(推荐)
- SHA-512(最高安全性)