Subresource integrity似乎是一个令人敬畏的权宜之计,允许以安全的方式使用第三方控制的HTTP服务资源。
但the spec仅考虑HTMLLinkElement
和HTMLScriptElement
接口:
注意
此规范的未来版本可能包括对所有可能的子资源的完整性支持,即
a
,audio
,embed
,iframe
,{{1} },img
,link
,object
,script
,source
和track
元素。
我了解video
和script
元素引用的内容更“活跃”,但浏览器会删除绿色挂锁以通过纯HTTP获取相对无害的图像,而规范选择忽略他们?这似乎是对我的远见卓识。
这背后的原因是什么?我们什么时候可以期待'未来修订',如果有的话?
答案 0 :(得分:3)
SRI为您提供了一些保证,即您要求的资源未被更改。例如,如果您从CDN加载JQuery,那么您希望确保没有人修改它以包含恶意代码(从另一个站点加载代码的主要缺点之一 - 您隐含地信任该站点的安全性)。 SRI为您提供保证。
SRI对如何加载没什么好说的。您可以轻松地通过http下载JQuery并获得不安全的内容警报,尽管它已经过SRI验证。
由于许多原因,不安全的内容很糟糕,包括:
SRI仅解决第一个问题。即便如此,它只会在被改变时停止加载,并且不会降低它被改变的机会(如https那样)。
如果您想解决不安全的内容问题,那么您可以查看内容安全策略,或者显式阻止它们,或者使用upgrade-insecure-requests指令自动升级它们(对于支持此问题的浏览器)。 / p>