代码之家  ›  专栏  ›  技术社区  ›  Dan

交付jQuery的cdn有多安全?

  •  21
  • Dan  · 技术社区  · 14 年前

    例如,他们提到有人可能劫持DNS服务器,然后注入恶意修改的库,从而为不同的安全攻击打开大门。 现在,如果黑客可以通过Google CDN注入恶意代码,那么如果jQuery是从站点本身提供的,他可能也可以这样做,对吧?

    googlecdn似乎支持通过SSL服务库。

    从CDN服务jQuery真的比从服务器本身服务jQuery更不安全吗?这种威胁有多严重?

    4 回复  |  直到 10 年前
        1
  •  7
  •   Ken Redler    14 年前

    降低风险的一种方法是对从Google获得的文件运行校验和,并将其与您已经拥有的已知良好校验和进行比较。

    在回答有关谷歌是否以任何方式修改这些文件的问题时,谷歌员工 Ben Lisbakken suggested comparing MD5 checksums

    如果您担心DNS劫持,那么从“原始”站点获得的文件当然也会受到同样的关注。您也可能不希望在每次请求时对jQuery文件运行校验和而导致速度损失——除非您非常偏执。当然,这样做会消除使用CDN的所有优势。

    • 确保您引用的是来自Google的jQuery文件的唯一特定版本。例如,执行以下操作:

      http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js
      

      而不是这个:

      http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js
      

      后一个版本现在可能返回1.4.2,但明天返回1.4.3。如果您同时需要http和https,可以使用协议相关URL,如下所示:

      //ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js
      
    • 最初为这个文件生成并存储你自己的校验和。

    • 定期重复此过程,并确保新的校验和与旧的校验和匹配。如果不是这样,那就听klaxons的声音。

    当然,你可以通过编程来实现。你决定什么间隔才有意义。每分钟?每五分钟?你现在有一个自动杀死开关的灵敏度,你可以调整到您的喜好的材料。“monitor”例程当然不必在您要保护的应用程序中同步运行;也许您只是为了这个目的而在同一台服务器上运行一个小型实用程序。

        2
  •  2
  •   vhs    7 年前

    从CDN服务jQuery真的比从服务器本身服务jQuery更不安全吗?

    对。如果是外部资源 总是不太安全 . 如果你不拥有源代码,你怎么可能确定你知道你的客户真正得到了什么?如果你不熟悉 云出血 ,在继续之前,您可能需要先阅读。

    如果出于性能原因确实需要从外部CDN加载jQuery,请确保使用 海底资源完整性 can be located 在MDN上。

    单点故障 (如果您对stevesouders的工作非常熟悉的话,这应该是一个值得关注的问题),从安全性和性能的角度来看,几乎可以肯定的是,您最好在内部移动所有脚本,并使用 Fetch Injection

        3
  •  1
  •   You    14 年前

    正如你的同事指出的,劫持DNS服务器将是一个问题。如果你的图书馆和你的网站是从同一个主机上提供的,那就不可能了。但是,如果使用HTTPS,攻击者不太可能在受欺骗的站点上拥有有效的证书。我不知道浏览器对此会有什么反应,但我怀疑他们会将网站标记为不安全(因为它的某些部分不可信)并相应地采取行动。

    所以简而言之,如果CDN也是使用HTTPS访问的,那么就不会有太大的风险。

    编辑: 格特G

        4
  •  -3
  •   MC Emperor    9 年前

    如果网上存在信任,那么谷歌是最值得信任的。。。

    毫无疑问,googlecdn是安全的,但问题总是来自用户/服务器的 Internet连接

    大约+4kb,请参见Firebug中的

    不管怎样,现在缩小/压缩/缓存jQuery不是问题,我建议你自己做一个。。。