什么是SRI
子资源完整性 Subresource Integrity 简称 SRI 是一种安全机制。是允许浏览器检查其获得的资源(例如从 CDN 获得的)是否被篡改的一项安全特性。它通过验证获取文件的哈希值是否和你提供的哈希值一样来判断资源是否被篡改。
在一些CDN网站提供了带SRI的,比如 vue - Libraries - cdnjs ,可以看到如下引用:
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/3.2.47/vue.cjs.js"
integrity="sha512-DD31SaA8/u+cn6fBAdPBcABgOkmiogzhPd/dNHvkMmazQLEjiaT9ZP51rkGTpFcx+jFl0EeNCxgxLaNniutt2g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
使用子资源完整性功能的方法是,在任何 <script>
或 <link>
元素的 integrity
属性值中,指定你要告诉浏览器所获取的资源(或文件)的 base64 编码的加密哈希值。
integrity
值至少由一个字符串开始,每个字符串包括一个前缀,表示一个特定的哈希算法(目前允许的前缀是 sha256
、sha384