jquery - . CDN 资产 硬拷贝 , 安全 , 生产 ;
问题描述
我有 dotnet 核心服务器,我想获取 jQuery 和引导文件。
我的问题是:在Production grad 软件上,我可以使用硬拷贝吗? 服务器将每天从 Microsoft CDN 更新文件的硬拷贝,还是我应该遵循警告并让客户直接获取他的副本CDN?
使用此方法时是否存在安全问题?
https://docs.microsoft.com/en-us/aspnet/ajax/cdn/overview
警告: 生产应用程序不应硬依赖 CDN 资产。应用程序应测试引用的 CDN 资产,并在 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,除非我正在构建的东西特别需要保持项目总大小尽可能小。
推荐阅读
- r - 是否有 R 函数检查前几行的日期?
- php - 尝试在 Laravel 上创建虚假帖子,但遇到带有消息“SQLSTATE [23000]”的 QueryException
- oracle - 如何在 oracle apex 中存储当前会话状态以供用户下次登录?
- angular - 角度/测试单元:失败:找不到管道“异步”
- javascript - 如何将存储在变量中的原始html放在反应组件内
- kubernetes - 为什么我的 ClusterIP 不能使用分配的 ip?
- python - O(log n) 链表搜索算法是否可行?
- c++ - 在 WinRT 中,如何对 png 进行编码,但将其作为内存 bmp 保存在内存中,而不是将其写入文件?
- html - 输入字段超出父 div
- android - 使用 Motion Layout 折叠基于回收器视图或滚动视图移动的自定义视图