CDN资产的硬拷贝,安全性,生产

时间:2019-01-01 22:03:12

标签: jquery security .net-core production microsoft-cdn

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

我的问题是:在 Production Grad软件上,我可以使用硬拷贝,并且服务器每天都会从以下位置更新文件的硬拷贝: Microsoft CDN还是我应该遵循警告,然后让客户直接从CDN获得其副本?

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

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

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

1 个答案:

答案 0 :(得分:0)

使用CDN不会带来安全风险,但这确实意味着如果CDN提供程序关闭,您的应用程序将无法正常运行(应该很少发生,但有可能发生)。

关于您为什么要使用CDN或不希望使用CDN的原因,我将遵循more informed folks

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

这不会按照您的要求“自动更新”文件,但是IMHO自动更新诸如jQuery之类的依赖项绝对不是一个好主意,因为每天这样做几乎肯定会在某个时候破坏您的应用程序。您使用的其他库取决于事物的特定版本,更改此类依赖关系时应格外小心,并在发布前进行彻底测试,绝对不能通过自动化过程进行。

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

关于此位:

  

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

基本上,这似乎是在说:“不要在仅将其链接到CDN文件的情况下设计您的应用程序,如果该文件不存在,则您的应用程序将失败。相反,请链接到CDN,但是您的代码应检查该CDN文件已加载,如果没有加载,请尝试从其他位置加载它。

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