我的程序的安全自动更新程序

时间:2016-10-24 18:06:22

标签: python auto-update

我用Python编写了一个程序,经常被修改。我有十几个测试人员(希望这个数字会增加),他们在便携版本中使用该程序,并不要求他们安装任何东西。我最近尝试在程序中提供自动更新程序,这样他们就可以从上次更新中受益,而不会丢失他们的配置,或者需要手动下载新版本。

我想尽可能安全地进行,但是,考虑到更新程序可能存在的安全风险。这就是我提出的问题。

  1. 当程序启动时,它会检查它的构建版本(硬编码)。
  2. 它将此版本版本与服务器上可用的最新版本版本进行比较。这项检查是通过https完成的,除了在服务器上获取信息并进行比较之外,并没有做太多工作。
  3. 如果有新的版本可用,系统会询问用户是否要下载并安装它。如果是,则在启动更新程序(另一个程序)后程序将关闭。
  4. 更新程序从服务器下载新版本。此时它是一个zip存档。
  5. updater在为此目的创建的临时目录中提取zip存档。然后它调用批处理文件。在批处理文件启动之前,updater将关闭。
  6. 批处理文件将临时目录中的所有内容复制到当前目录,但保留的设置除外。然后,当它即将关闭时,它会再次呼叫客户端。
  7. 再次开始,更新。
  8. 使用批处理文件是因为更新程序无法替换自身(操作系统似乎不太喜欢它,我不能责怪它)。

    这非常有效。有些用户告诉我,https中的初始连接不起作用,这是非常令人费解的,但我不认为通过http做同样的事情是一个好主意,太容易改变zip文件。是吗?

    也许我的步骤列表对于安全性来说确实是错误的。我希望得到你的想法和评论,关于应该放弃什么以及可以加强什么。

    提前谢谢你,

0 个答案:

没有答案