创作安全安装指南

在创作 Windows Installer 包时遵循以下准则有助于在安装过程中维护安全环境:

  • 管理员应将托管应用程序安装到非管理员用户没有更改或修改权限的目标安装文件夹中。
  • 使用户设置的任何属性成为公共属性。 无法由与用户界面交互的用户更改专用属性。 有关信息,请参阅 “关于属性”。
  • 不要对密码或其他必须保持安全的信息使用属性。 安装程序可将创作的属性的值写入 属性表中,或在运行时创建的属性写入日志或系统注册表。 有关其他信息,请参阅 防止机密信息写入日志文件
  • 安装要求安装程序使用 提升 的权限时,请使用 受限公共属性 来限制用户可更改的公共属性。 安装要求安装程序使用 提升 的权限时,通常需要一些限制来维护安全环境。
  • 避免安装模拟特定用户特权的服务,因为这可能会将安全数据写入日志或系统注册表。 这可能导致系统重启时出现安全问题、密码冲突或配置数据丢失。 有关详细信息,请参阅 ServiceInstall 表
  • 使用 LockPermissions 表MsiLockPermissionsEx 表 保护锁定环境中的服务、文件、注册表项和创建文件夹。
  • 将数字签名添加到安装,以确保文件的完整性。 有关详细信息,请参阅数字签名和Windows安装程序创作完全验证的签名安装
  • 创作Windows安装程序包,以便如果用户拒绝访问资源,则安装程序会以维护安全环境的方式失败。 检查用户的访问权限,并确定在安装开始之前是否有足够的磁盘空间。 通常,如果当前用户是管理员,或者安装不需要 提升 的权限,安装程序应仅显示浏览对话框。 有关详细信息,请参阅 源复原能力
  • 使用 安全转换 将转换存储在用户计算机上的安全文件系统中。 这可以防止用户对转换具有写入访问权限。
  • 有关如何保护托管应用程序的媒体源的信息,请参阅源复原。
  • 使用 安全摘要 属性指示是否应将包作为只读打开。 此属性应设置为安装数据库的只读建议,并为转换或修补程序强制实施只读。
  • 安装程序默认使用用户权限运行自定义操作,以限制对系统的自定义操作的访问。 如果安装了托管应用程序,或者系统策略已为提升的权限指定,安装程序可能会运行具有 提升 权限的自定义操作。 有关详细信息,请参阅 自定义操作安全性
  • 使用 DisablePatch 策略在必须限制修补的环境中提供安全性。
  • 使用 AppId 表 注册 DCOM 对象的常见安全性和配置设置。
  • 有关相关信息,请参阅 保护自定义操作指南
  • 有关相关信息,请参阅 保护锁定计算机上的包的准则
  • 从 Windows Installer 3.0 开始,用户帐户控制 (UAC) 修补使非管理员用户能够修补在每台计算机上下文中安装的应用程序。 UAC 修补是通过在 MsiPatchCertificate 表中提供签名者证书并使用同一证书签名修补程序来启用的。
  • Windows Installer 5.0 对服务、文件、创建的文件夹和注册表项设置访问权限的功能有助于使安装应用程序更安全。 有关信息,请参阅 保护资源