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