微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-core – 如何将安全更新应用于.NET Core项目?

我正在更密切地关注.NET Core,而我似乎没有找到任何关于如何应用安全更新的信息?

如果我将所有程序集与应用程序分离,从Windows Update分离,如果组件有安全补丁,我将如何更新它们?

当您使用操作系统附带的框架时,您只更新一次,但如果您有一堆网站,我需要单独更新它们吗?我假设它都需要从我的原始源开始,在那里进行更新然后重新部署所有内容,因为如果我只是通过命令行更新部署,而我不对我的源做同样的事情,我’将再次重新部署不安全的位.

解决方法

无论如何,您总是必须这样做,因为系统更新只会影响运行时,而不会影响您的应用程序引用来自nuget或其他来源的包.

.NET核心有两种风格

1.便携式应用

便携式应用程序就像您在.NET Framework中使用的那样.您安装了运行时/ SDK,并且您的应用程序仅引用这些核心集,但不会将它们与您的应用程序一起部署.

在那里更新运行时就足够了.优点是较小的部署包.缺点是您需要在部署之前在系统上安装正确版本的运行时.

2.独立应用程序

另一方面的自包含应用程序不需要已安装的运行时,并将使用该应用程序部署必要的系统库.

这里的优点是,您可以部署应用程序并并行运行多个应用程序,这些应用程序使用它们编译的库,而不会产生框架或运行时更新的副作用.

缺点是,更大的规模和缺乏修复和安全更新的中央更新机制.

但最终,问题仍然存在.当您的某个非.NET-Framework依赖项升级或接收安全修复程序时,这两种风格都不能解决问题.

因此,两种版本仍然需要使用更新的库集重建/重新部署应用程序,并且使用旧的.NET Framework需要它.

升级旧版应用程序或版本,您应该使用源代码管理系统.使用里程碑/版本的标签,因此您可以随时检查标签升级它的依赖关系并提交部署它.

.NET Core也可以与docker一起使用,因此当您使用像Rancher这样的Docker编排工具时,部署应该很容易.

最重要的是,特定的库(如加密)不是通过NuGet / .NET Core Runtime发布的,只是它们的包装器.例如,Cryptography对Windows上的CryptoAPI和Linux / MacOS上的OpenSSH具有本机依赖性.当在OpenSSH中修复错误时,系统更新机制(即apt-get等)将覆盖该错误.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐