我正在更密切地关注.NET Core,而我似乎没有找到任何关于如何应用安全更新的信息?
如果我将所有程序集与应用程序分离,从Windows Update分离,如果组件有安全补丁,我将如何更新它们?
当您使用操作系统附带的框架时,您只更新一次,但如果您有一堆网站,我需要单独更新它们吗?我假设它都需要从我的原始源开始,在那里进行更新然后重新部署所有内容,因为如果我只是通过命令行更新部署,而我不对我的源做同样的事情,我'将再次重新部署不安全的位.
无论如何,您始终必须执行此操作,因为系统更新只会影响运行时,而不影响您的应用程序引用的来自 nuget 或其他来源的包。
.NET Core 有 2 种风格
便携式应用程序就像您在 .NET Framework 中使用的应用程序一样。您安装运行时/SDK,您的应用程序仅引用这些核心集,但不会将它们与您的应用程序一起部署。
更新运行时就足够了。优点是部署包较小。缺点是您需要在部署之前在系统上安装正确版本的运行时。
另一端的独立应用程序不需要安装运行时,并将随应用程序一起部署必要的系统库。
这样做的优点是,您可以部署应用程序并并行运行多个应用程序,这些应用程序使用它们编译时使用的库,而不会产生框架或运行时更新的副作用。
缺点是体积较大且缺乏修复和安全更新的中央更新机制。
但最终,问题还是一样。当您的非 .NET-Framework 依赖项之一将升级或接收安全修复时,这两种风格都无法解决问题。
因此,这两种风格仍然需要使用更新的库集重建/重新部署应用程序,而旧的 .NET Framework 也需要这样做。
要升级旧的应用程序或版本,您应该使用源代码控制系统。对里程碑/版本使用标签,这样您就可以随时检查标签升级它的依赖项并提交+部署它。
此外.NET Core 可以与 docker 一起使用,因此当您使用像 Rancher 这样的 Docker 编排工具时,部署应该很容易。
最重要的是,特定的库(如密码学)不是通过 NuGet/.NET Core 运行时提供的,而是通过它们的包装器提供的。例如,密码学对 Windows 上的 CryptoAPI 和 Linux/MacOS 上的 OpenSSH 具有本机依赖性。当 OpenSSH 中的错误得到修复时,系统更新机制(即 apt-get 等)将覆盖该错误。
| 归档时间: |
|
| 查看次数: |
612 次 |
| 最近记录: |