缺少子资源完整性保护

时间:2015-11-20 06:26:01

标签: python ruby-on-rails django heroku subresource-integrity

我已经在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.

有人能解释一下这一切意味着什么,所以我可以从中学到一些东西,以及将来该怎么做才能避免这种情况?

1 个答案:

答案 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,他们会详细讨论这个功能。