在DMZ的一次对话中,有人建议使用 SHA256 哈希来检查从 CDN 传递的内容在执行之前是否没有更改,类似于 Kim Dotcom 的 MEGA 最近尝试使用 CBC-MAC 所做的事情。
该机制将在浏览器级别实现,其中内容哈希将嵌入到内容的链接中。例如:
<script src="http://example.cdn/jq/jquery-1.2.3.js" hash="sha256:kMufczNYKx9B2A7x7eICQVu18YDzEMqUe3G+h5QSifw=" />
哈希将作为站点代码的一部分提供,因此只有与哈希匹配的内容才会执行。这将保护用户免受 CDN 被入侵的情况。如果在混合内容模式下运行,除了 CDN 之外的所有内容都在 SSL 上运行,它还将提供一种提供最低安全性的方法。
这种方法有什么缺陷吗?在实施过程中是否有需要考虑的重要案例?