如何防止未经授权的 MSI 安装?
How to prevent unauthorized MSI installation?
我有同一个 MSI 软件包的两个版本:'genuine' 和 'developer'。前者是为了运输,而后者是为了测试等目的在开发者的电脑上构建的。我想防止 'developer' 版本的意外泄漏,以至于最终用户无法安装它.有哪些可能的方法?
MSI 使用 WiX 构建,以防万一。
我看过 Securing an msi to prevent unauthorized use,但那里的答案主要是防止启动而不是安装。我不需要混淆、加密或保护包内容。由于安装了错误的软件包,我只需要保护不合格的用户不会意外地在他们的机器上搞砸。
老实说,因为 MSI 是一本打开的书(用 ORCA 编辑),所以最好在运行时在应用程序中执行这种类型的强制 (DRM)。我可以在 MSI 中建议各种技术,但知道他们在做什么的人可能会删除它们。
您 "leaking" 担心什么?您不信任您的开发人员吗?您不信任您的 CM / 发布实践吗?你有一个强有力的保密协议吗?适当的 IT 安全性?
如果您只是想防止意外误用 - 也就是说,有人在不知不觉中安装了需要用户副本的开发人员副本 - 我会建议一个简单的启动条件。您会记录 "developers" 必须在他们的机器上放置一些东西(可能是一个文件、一个注册表项,甚至是一个环境变量),并让 msi 检查它。然后它会拒绝安装,除非 "I am a developer" 足迹在那里。
如果你想避免足迹,你可以要求 "developers" 从命令行启动 msi 并传递 DEVELOPER=1
而不是检查 属性。或者更极端的是,您可能需要 DEVELOPER
属性 的特定且不断变化的值。这完全取决于您想让它成为您产品的 "developer" 有多烦人。
请注意,这对于恶意滥用一点也不安全。除其他限制外,它不会阻止允许访问所有文件的管理安装。
另请注意,遵循通常的启动条件模式以避免阻止卸载包仍然是一个明智的想法。
我有同一个 MSI 软件包的两个版本:'genuine' 和 'developer'。前者是为了运输,而后者是为了测试等目的在开发者的电脑上构建的。我想防止 'developer' 版本的意外泄漏,以至于最终用户无法安装它.有哪些可能的方法?
MSI 使用 WiX 构建,以防万一。
我看过 Securing an msi to prevent unauthorized use,但那里的答案主要是防止启动而不是安装。我不需要混淆、加密或保护包内容。由于安装了错误的软件包,我只需要保护不合格的用户不会意外地在他们的机器上搞砸。
老实说,因为 MSI 是一本打开的书(用 ORCA 编辑),所以最好在运行时在应用程序中执行这种类型的强制 (DRM)。我可以在 MSI 中建议各种技术,但知道他们在做什么的人可能会删除它们。
您 "leaking" 担心什么?您不信任您的开发人员吗?您不信任您的 CM / 发布实践吗?你有一个强有力的保密协议吗?适当的 IT 安全性?
如果您只是想防止意外误用 - 也就是说,有人在不知不觉中安装了需要用户副本的开发人员副本 - 我会建议一个简单的启动条件。您会记录 "developers" 必须在他们的机器上放置一些东西(可能是一个文件、一个注册表项,甚至是一个环境变量),并让 msi 检查它。然后它会拒绝安装,除非 "I am a developer" 足迹在那里。
如果你想避免足迹,你可以要求 "developers" 从命令行启动 msi 并传递 DEVELOPER=1
而不是检查 属性。或者更极端的是,您可能需要 DEVELOPER
属性 的特定且不断变化的值。这完全取决于您想让它成为您产品的 "developer" 有多烦人。
请注意,这对于恶意滥用一点也不安全。除其他限制外,它不会阻止允许访问所有文件的管理安装。
另请注意,遵循通常的启动条件模式以避免阻止卸载包仍然是一个明智的想法。