如何防止未经授权的MSI安装?

时间:2015-07-27 14:03:43

标签: wix windows-installer authorization

我有两个版本的相同MSI包:'正版'和'开发者'。前者是用于运输,而后者是建立在开发人员的计算机上,以便进行测试等。我想防止意外泄漏“开发者”版本,以便最终用户无法安装它。有哪些可能的方法?

MSI是使用WiX构建的,以防万一。

我见过Securing an msi to prevent unauthorized use,但那里的答案主要集中在防止启动而不是安装。我不需要对包内容进行模糊处理,加密或保护。由于安装了错误的包裹,我只需要保护不合格的用户免受他们机器上的事情的误操作。

2 个答案:

答案 0 :(得分:1)

老实说,因为MSI是一本开放式书籍(使用ORCA编辑),所以最好在运行时在应用程序中执行此类强制执行(DRM)。我可以在MSI中建议各种技术,但是知道他们正在做什么的人可以删除它们。

您的“泄漏”问题是什么?你不相信你的开发者吗?你不相信你的CM /发布实践吗?你有一个强大的NDA吗?适当的IT安全性?

答案 1 :(得分:1)

如果您只是为了防止意外滥用 - 也就是说,有人在不知不觉中安装了想要用户副本的开发人员副本 - 我会建议一个简单的启动条件。你会记录那些"开发者"必须在他们的机器上放置一些东西(可能是文件,注册表项,甚至是环境变量),然后让msi检查。然后它会拒绝安装,除非"我是开发人员"足迹就在那里。

如果你想避免足迹,你可能需要"开发人员"从命令行启动msi并传递DEVELOPER=1,然后检查属性。或者更极端,您可能需要DEVELOPER属性的特定值和更改值。这一切都取决于你想成为一名开发人员的烦恼。为您的产品。

请注意,这对于恶意滥用至少是不安全的。除了其他限制之外,它不会阻止允许访问所有文件的管理安装。

请注意,遵循通常的启动条件模式以避免阻止卸载软件包仍然是一个明智的想法。