Subresource integrity似乎是一个绝妙的权宜之计,它允许以安全的方式使用第三方控制的HTTP服务资源。
但是the spec仅考虑HTMLLinkElementHTMLScriptElement接口(interface):

我了解scriptlink元素所引用的内容更具“ liveness ”,但是浏览器删除了绿色挂锁,可通过纯HTTP提取相对无害的图像,而规范选择忽略它们?对我来说,这似乎是极缺乏远见的。
这背后的原因是什么,我们什么时候可以期待“ future 修订”?

最佳答案

SRI为您提供了一些保证,确保您所请求的资源没有被更改。例如,如果要从CDN加载JQuery,则要确保没有人修改它以包含恶意代码(从另一个站点加载代码的主要缺点之一-您暗中信任该站点的安全性)。 SRI为您提供保证。

SRI在上无话可说,如何加载。您可以轻松地通过http下载JQuery并为此获得不安全的内容警报,尽管它已被SRI验证。

不安全的内容是不好的,其原因有很多,其中包括:

  • 不保证内容未更改(SRI对此有所说明)。
  • Cookie的泄漏(除非受Secure属性保护)。
  • 隐私泄漏(窥探者知道您已请求该资源)。

  • SRI仅解决第一个问题。即使这样,它也只会在更改后停止加载,并且不会减少更改的机会(就像https一样)。

    如果要解决不安全的内容问题,则可以查看内容安全策略,以明确地阻止这些问题,或者使用upgrade-insecure-requests指令自动升级它们(对于支持此问题的浏览器)。

    10-05 20:28