首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML中integrity属性的用途是什么?

HTML中integrity属性的用途是什么?
EN

Stack Overflow用户
提问于 2015-12-23 13:12:31
回答 3查看 24.4K关注 0票数 17

我在bootstrap的网站上,最近我注意到他们的CDN链接包含一个带有SHA-384密钥的完整性属性。

代码语言:javascript
复制
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script>

我假设这是一种验证脚本源代码的方法,但更多的是我想知道它是如何使用的,这是否是任何规范的一部分?

此外,这是否只适用于脚本src,或者它是否适用于任何不同来源的源代码?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-23 13:19:55

请检查以下内容:

https://developer.mozilla.org/en/docs/Web/HTML/Element/script

使用内容分发网络(CDN)来托管在多个站点之间共享的脚本和样式表等文件,可以提高站点性能并节省带宽。但是,使用CDN也有风险,因为如果攻击者控制了CDN,攻击者可以将任意恶意内容注入CDN上的文件(或完全替换文件),因此还可能攻击从该CDN获取文件的所有站点。

子资源完整性功能使您能够通过确保您的Web应用程序或Web文档(从CDN或任何地方)获取的文件在没有第三方向这些文件注入任何额外内容的情况下交付,并且根本没有对这些文件进行任何其他任何类型的更改,从而降低此类攻击的风险。

点击此处阅读更多信息:

https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity

票数 17
EN

Stack Overflow用户

发布于 2015-12-23 13:21:48

使用Content Delivery Networks (CDN)托管在多个站点之间共享的脚本和样式表等文件,可以提高站点性能并节省带宽。但是,使用CDN也有风险,因为如果攻击者控制了CDN,攻击者可以将任意恶意内容注入CDN上的文件(或完全替换文件),因此还可能攻击从该CDN获取文件的所有站点。

子资源完整性功能使您能够通过确保您的Web应用程序或Web文档(从CDN或任何地方)获取的文件在没有第三方向这些文件注入任何额外内容的情况下交付,并且根本没有对这些文件进行任何其他任何类型的更改,从而降低此类攻击的风险。

使用子资源IntegrityEDIT

通过在任何<script><link>元素的完整性属性的值中指定告诉浏览器获取的资源(文件)的base64编码加密散列,可以使用子资源完整性特性。

完整性值至少以一个字符串开头,每个字符串包括一个指示特定散列算法的前缀(当前允许的前缀为sha256、sha384和sha512),后跟一个破折号,并以实际的base64编码的散列结束。

完整性值可以包含由空格分隔的多个哈希。如果资源与这些散列之一匹配,则会加载该资源。

使用base64编码的sha384散列的完整性字符串示例:

sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC

严格地说,完整性值的“散列”部分是通过将特定的散列函数应用于某些输入(例如,脚本或样式表文件)而形成的加密摘要。但是通常使用简写散列来表示加密摘要,所以这就是本文中使用的内容。

欲了解更多信息,请访问:Link

票数 2
EN

Stack Overflow用户

发布于 2015-12-23 13:26:12

子资源完整性定义了一种机制,通过该机制,用户代理可以在没有意外操作reference的情况下验证所获取的资源是否已被传送

属性的作用是允许浏览器检查文件源,以确保如果源文件已被操作,则永远不会加载代码。

当使用'CORS‘加载请求时,会出现Crossorigin属性,当不是从’同源‘加载时,这现在是SRI检查的要求。有关交叉配准的详细信息

有关Bootstrap CDNs实施的更多详细信息,请访问here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34429024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档