图片和其他媒体的子资源完整性?

min*_*inj 6 html https w3c image subresource-integrity

子资源完整性似乎是一个绝妙的权宜之计,允许以安全的方式使用第三方控制的HTTP服务资源。

但是,该规范仅考虑HTMLLinkElementHTMLScriptElement接口:

注意

本规范的未来版本可能会包括对所有可能的子资源完整性的支持,即aaudioembediframeimglinkobjectscriptsourcetrack,和video元素。

我知道scriptlink元素所指的内容更加“活跃”,但是浏览器删除了绿色的挂锁,以便通过纯HTTP甚至获取相对无害的图像,而规范选择忽略它们?对我来说,这似乎是极缺乏远见的。

这背后的原因是什么,我们什么时候可以期待“未来修订”?

Bar*_*ard 1

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

SRI 没有透露它是如何加载的。您可以轻松地通过 http 下载 JQuery 并获得不安全内容警报,尽管它已经过 SRI 验证。

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

  1. 不保证内容不会在传输过程中被更改(SRI 对此有所解决)。
  2. cookie 泄漏(除非受安全属性保护)。
  3. 隐私泄露(窥探者知道您已请求该资源)。

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

如果您想解决不安全的内容问题,那么您可以查看内容安全策略,要么显式阻止这些问题,要么使用upgrade-insecure-requests指令自动升级它们(对于支持此功能的浏览器)。

  • 我知道 SRI 的缺点。当资源不在您的直接控制之下时,您无能为力。问题是为什么规范中要进行差异化处理(按元素),以及是否有任何扩展/改进它的行动。 (4认同)
  • 我正在寻找的是我最后一个问题的实际答案。大概来自“规范作者”或在构思规范时“了解”与此相关的任何讨论的其他人 (2认同)