我已经在Heroku上上了一个django博客应用程序,一切都像我现在应该的那样工作,但我对Missing Subresource Integrity Protection
提出了一个小问题。
我很擅长使用heroku插件,但我已设置tinfoil以确保安全性,在初始扫描后我遇到了3个漏洞。扫描结果表明我是Missing Subresource Integrity Protection
,他们向我提出了这个问题:
> All externally loaded resources must have their content pinned using
> the subresource integrity mechanisms provided by modern browsers. This
> involves computing a hash of the contents of the resource, and
> specifying this hash when loading that resource. In the case of a
> script, this might look like the following:
<script src="https://example.com/include.js"
integrity="sha256-Rj/9XDU7F6pNSX8yBddiCIIS+XKDTtdq0//No0MH0AE="
crossorigin="anonymous"></script>
SRI Hash is an option for computing the necessary hashes.
有人能解释一下这一切意味着什么,所以我可以从中学到一些东西,以及将来该怎么做才能避免这种情况?
答案 0 :(得分:1)
Subresource integrity是一种规范,它定义了一种机制,通过该机制,用户代理可以验证所提取的资源是否已经被传送而没有意外的操作。&#34;它基本上是资产的校验和,如果资源与指定的完整性值不匹配,则兼容的浏览器不会加载资源。
只要您的链轮版本为3.x或更高,就可以在Rails中轻松添加。您可以按照sprockets documentation:
中的示例添加检查javascript_include_tag :application, integrity: true
# => "<script src="/assets/application.js" integrity="sha256-TvVUHzSfftWg1rcfL6TIJ0XKEGrgLyEq6lEpcmrG9qs="></script>"
GitHub Engineering有一个interesting blog post,他们会详细讨论这个功能。