请解释 Subresource Integrity (SRI) 的作用和用法

推荐答案

Subresource Integrity (SRI) 是一种安全特性,用于确保从外部服务器加载的资源(如脚本或样式表)在传输过程中未被篡改。它通过使用加密哈希值来验证资源的完整性。

用法

在 HTML 中,可以通过在 <script><link> 标签中添加 integrity 属性来使用 SRI。该属性的值是一个由哈希算法(如 SHA-256、SHA-384 或 SHA-512)生成的哈希值,后跟一个连字符和哈希值本身。

作用

  1. 防止资源篡改:确保从外部服务器加载的资源未被第三方篡改。
  2. 增强安全性:防止恶意代码注入,保护用户数据安全。
  3. 提高信任度:确保资源来源可信,增强用户对网站的信任。

本题详细解读

什么是 Subresource Integrity (SRI)?

Subresource Integrity (SRI) 是一种安全机制,允许浏览器验证从外部服务器加载的资源(如 JavaScript 文件、CSS 文件等)是否在传输过程中被篡改。它通过使用加密哈希值来确保资源的完整性。

如何生成 SRI 哈希值?

可以使用工具如 openssl 或在线生成器来生成 SRI 哈希值。例如,使用 openssl 生成 SHA-384 哈希值的命令如下:

如何在 HTML 中使用 SRI?

在 HTML 中,通过在 <script><link> 标签中添加 integrity 属性来使用 SRI。integrity 属性的值由哈希算法名称和哈希值组成,格式如下:

跨域资源与 SRI

当使用 SRI 加载跨域资源时,必须设置 crossorigin 属性为 anonymoususe-credentials,以确保浏览器能够正确验证资源的完整性。

SRI 的局限性

  1. 性能开销:浏览器需要计算资源的哈希值,可能会增加加载时间。
  2. 兼容性:并非所有浏览器都支持 SRI,需要确保目标用户使用的浏览器支持该特性。
  3. 维护成本:每次资源更新时,都需要重新生成并更新哈希值,增加了维护成本。
纠错
反馈