代码之家  ›  专栏  ›  技术社区  ›  Michael

用C语言通过Internet安全更新#

  •  2
  • Michael  · 技术社区  · 15 年前

    什么是最安全和最安全的方法,允许软件自动更新而不打开太多的漏洞,使黑客容易访问系统?

    4 回复  |  直到 13 年前
        2
  •  1
  •   Nir    15 年前

    我建议不要构建自己的自动更新,如果适用,请使用clickOnce;如果不适用,请使用商业自动更新组件。

    如果你想知道其中涉及到什么,我在一段时间前写了一个关于在我的博客上写自动更新组件的系列文章,最后一篇文章链接到了系列文章中的所有文章,网址是: http://www.nbdtech.com/blog/archive/2007/08/07/How-To-Write-an-Automatic-Update-System-Part-8.aspx

        3
  •  0
  •   James Black    15 年前

    如果您要创建自己的系统,那么您可能需要一个公钥/私钥对。

    所以,您可以压缩更新。

    然后用服务器上的私钥加密。

    然后客户端可以解密并解压缩它,然后安装它。

    这样,只要您的私钥是安全的,就可以确保更新是合法的。

    这里唯一的缺点是,如果有人将公钥更改为其他密钥,那么他们可能会愚弄该程序,认为特洛伊木马是有效的更新。

    有各种各样的方案可以用来解决这个问题,但这取决于你想投入多少工作。

        4
  •  0
  •   Tri Q Tran    15 年前

    ClickOnce自动更新是公平和良好的,但任何人都可以承认它不是最流行的解决方案。我最近开发了一个解决方案,需要这样的自动更新功能。下面是我在部署自己的更新服务时所采取的一系列简单步骤,这些更新服务还允许使用“最少”的专有技术进行回滚。

    1. 向解决方案中添加一个安装项目,以便将该项目整齐地包装在.exe或.msi安装程序包中。

    2. 以下是使用只有应用程序知道的所需用户凭据设置FTP服务器。在ftp服务器上,为放置任何新更新的位置设置默认目录。

    3. 您的应用程序将在启动时检查Internet连接,登录远程FTP服务器并检查是否有任何要下载的新文件。

    4. 将新的更新下载到您的客户机应用程序中,并将它们放入名为文件夹的日期时间中,以供将来参考。需要进行一些检查以确保不下载相同的旧文件。

    5. 关闭应用程序并运行新安装。根据安装项目的设置方式,安装向导可能会完全删除以前的版本,或者只更新部分版本(补丁等)。

    6. 您的应用程序可能有一个特性,可以通过进入本地更新目录并查找以前下载的文件来回滚到以前的版本。这就是日期时间戳文件方便参考的地方。

    这个解决方案提供了一个我认为大多数企业解决方案都需要的定制级别,我发现它对我非常有效。只要涉及到文件下载,ftp服务器就安全可靠。你可以在互联网上找到很多ftp下载助手库,所以这是你想要的工作方式的问题,而不是太担心它如何工作。