Subresource integrity似乎是一个绝妙的权宜之计,它允许以安全的方式使用第三方控制的HTTP服务资源。
但是the spec仅考虑HTMLLinkElement
和HTMLScriptElement
接口(interface):
我了解script
和link
元素所引用的内容更具“ liveness ”,但是浏览器删除了绿色挂锁,可通过纯HTTP提取相对无害的图像,而规范选择忽略它们?对我来说,这似乎是极缺乏远见的。
这背后的原因是什么,我们什么时候可以期待“ future 修订”?
最佳答案
SRI为您提供了一些保证,确保您所请求的资源没有被更改。例如,如果要从CDN加载JQuery,则要确保没有人修改它以包含恶意代码(从另一个站点加载代码的主要缺点之一-您暗中信任该站点的安全性)。 SRI为您提供保证。
SRI在上无话可说,如何加载。您可以轻松地通过http下载JQuery并为此获得不安全的内容警报,尽管它已被SRI验证。
不安全的内容是不好的,其原因有很多,其中包括:
SRI仅解决第一个问题。即使这样,它也只会在更改后停止加载,并且不会减少更改的机会(就像https一样)。
如果要解决不安全的内容问题,则可以查看内容安全策略,以明确地阻止这些问题,或者使用upgrade-insecure-requests指令自动升级它们(对于支持此问题的浏览器)。