加拿大资产、安全、生产的硬拷贝

Hardcopy of CDN assests , security , Production

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

我的问题是:在 Production 毕业软件上,我可以使用 hard-copy 并且服务器会更新 hard-copy每天从 Microsoft CDN 获取文件,还是我应该遵循警告并让客户直接从 CDN 获取他的副本?

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

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

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

使用 CDN 不会带来安全风险,但这确实意味着如果 CDN 提供商出现故障(不应该经常发生但可能发生),您的应用程序将无法正常工作。

关于您愿意或不愿意使用 CDN 的原因,我将遵从 more informed folks

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

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

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

关于这一点:

Warning : Production applications should not take a hard dependency on CDN assets. Applications should test for the CDN asset referenced, and use a fallback asset when the CDN is not available.

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

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