保护自定义操作的指南

使用自定义操作创作 Windows Installer 包时,遵循以下准则有助于在安装过程中维护安全的环境:

  • 保护自定义操作写入的任何其他文件。
  • 检查自定义操作读取的所有数据的缓冲区长度和有效性。 这包括可能向自定义操作提供数据的属性,尤其是那些使用由用户提供的公共属性的属性。
  • 在计划运行安装包的任何平台上,请勿依赖于系统不信任的外部 DLL。
  • 请仔细考虑是否使用哪些要求使用提升权限或模拟的自定义操作。 自定义操作(如“安装完成后打开 URL”、“安装完成后启动软件”或“安装完成后启动自述文件”)通常不需要提升的权限就能正常运行。 如果你的自定义操作必须使用提升的权限运行,请确保自定义操作代码能够防止缓冲区溢出,并且可以防止意外加载不安全的代码。 请注意,在安装的执行阶段,安装程序会将信息传递给具有提升权限的进程,并运行脚本。 在执行阶段运行的任何自定义操作都能以提升的权限运行。
  • 收集用户在 UI 序列期间提供的所有信息。 不要提示用户输入任何无法使用公共属性设置的信息。
  • 如果脚本自定义操作扩展了属性,请采取预防措施,确保自定义操作受到保护,以防脚本注入的可能性。 可以以明文形式记录脚本。

另请参阅自定义操作安全性