首页 > 解决方案 > . CDN 资产 硬拷贝 , 安全 , 生产 ;

问题描述

我有 dotnet 核心服务器,我想获取 jQuery 和引导文件。

我的问题是:在Production grad 软件上,我可以使用硬拷贝吗? 服务器将每天从 Microsoft CDN 更新文件的硬拷贝,还是我应该遵循警告并让客户直接获取他的副本CDN?

使用此方法时是否存在安全问题?

https://docs.microsoft.com/en-us/aspnet/ajax/cdn/overview

警告: 生产应用程序不应硬依赖 CDN 资产。应用程序应测试引用的 CDN 资产,并在 CDN 不可用时使用备用资产。

标签: jquerysecurity.net-coreproductionmicrosoft-cdn

解决方案


使用 CDN 不是安全风险,但它确实意味着如果 CDN 提供商关闭,您的应用程序将无法正常工作(不应该经常发生,但可能会发生)。

对于您为什么要或不想使用 CDN,我会听从更知情的人的意见

如果您决定不使用 CDN,只需转到您拥有的 CDN 链接,复制文本,将其保存到文件中,然后将该文件包含在您的应用程序中。将所有链接指向此文件而不是 CDN。

这不会按照您的要求“自动更新”文件,但是恕我直言,自动更新像 jQuery 这样的依赖项绝对是个坏主意,因为每天这样做几乎肯定会在某些时候破坏您的应用程序。您使用的其他库依赖于特定版本的事物,应谨慎更改此类依赖项并在发布前彻底测试,绝对不能通过自动化过程。

仅供参考,您所说的 CDN 文件永远不会更改。那就是https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js永远不会改变。CDN 文件中的文件内容应始终保持不变。如果库被更新,将创建一个具有新名称(可能具有更新的版本号)的新 CDN 文件,但旧文件仍将保留旧名称和相同内容。

关于这一点:

警告:生产应用程序不应硬依赖 CDN 资产。应用程序应测试引用的 CDN 资产,并在 CDN 不可用时使用备用资产。

基本上,这似乎是在说,“不要设计你的应用程序,它只是链接到 CDN 文件,如果文件不存在,你的应用程序就会失败。相反,链接到 CDN,但你的代码应该检查那个 CDN 文件已加载,如果没有,请尝试从其他位置加载它。

就个人而言,在大多数情况下,我更喜欢所需文件的本地副本(最好是缩小版)并避免使用 CDN,除非我正在构建的东西特别需要保持项目总大小尽可能小。


推荐阅读