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