我如何确保我通过CDN交付的JavaScript文件不会被更改? [英] How can I make sure that my JavaScript files delivered over a CDN are not altered?

查看:0
本文介绍了我如何确保我通过CDN交付的JavaScript文件不会被更改?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在处理一个场景,其中一些JavaScript文件将托管在CDN上。我希望有一些机制,这样当这些文件在用户端下载时,我可以确保这些文件没有被篡改,并且确实来自指定的CDN。

我知道如果我使用SSL,这项任务会非常容易,但我仍然希望确保即使在不使用SSL的HTTP上也能提供正确的文件。

就我所能搜索到的,目前还没有像跨平台支持的JavaScript文件数字签名这样的现有机制。也许不需要它?

浏览器中是否内置了一些方法来验证JavaScript文件的作者?我可以做些什么来以安全的方式完成此操作?

推荐答案

事实上,这样的功能是currently being drafted子资源完整性的名称下。查看<script>标记的integrity属性。While not yet fully adopted across the board,它正好实现了这一目的。

integrity

包含内联元数据,用户代理可以使用这些元数据来验证已获取的资源是否已在没有意外操作的情况下交付。请参见子资源完整性。

Source

子资源完整性(SRI)是一种安全功能,使浏览器能够验证它们获取的文件(例如,从CDN)是否在没有意外操作的情况下交付。它的工作方式是允许您提供提取的文件必须匹配的加密哈希。

Source


示例:

<script src="https://example.com/example-framework.js"
    integrity="sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
    crossorigin="anonymous"></script>

但是请注意,如果您通过纯HTTP传输资源,将不会保护您免受Man in the Middle attacks的影响。在这种情况下,攻击者可以伪造哈希代码,从而使防御被篡改的脚本文件变得毫无用处。

因此,除了上述安全措施外,您应该始终使用安全HTTPS连接,而不是纯HTTP。

这篇关于我如何确保我通过CDN交付的JavaScript文件不会被更改?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆