如何从 InstallShield Suite/Advanced UI 安装程序的日志中隐藏输入的密码值
How to hide entered password value from logs of an InstallShield Suite/Advanced UI setup
在使用 /debuglog 命令行时,是否有办法在 InstallShield Suite/Advanced UI 项目中隐藏一些敏感属性?
类似于 MSI 项目的 MsiHiddenProperties?
场景:
- 为 Windows
使用 InstallShield 2015 Premier
- 有一个 PasswordBox 控件绑定到一个安装程序 属性(你知道,那个隐藏了 UI 上的值的控件)
问题:
在以下情况下,密码以明文形式写入设置日志:
- 问题 1:用户更改了 PasswordBox 的值
- 问题 2:密码值被转发到 MSI 命令行
现在日志输出如下所示:
10-11-2021[10:58:25 AM]: Engine: property 'ServiceAccountPassword' value now 'm'
10-11-2021[10:58:25 AM]: Engine: property 'ServiceAccountPassword' value now 'my'
10-11-2021[10:58:26 AM]: Engine: property 'ServiceAccountPassword' value now 'myp'
10-11-2021[10:58:26 AM]: Engine: property 'ServiceAccountPassword' value now 'mypa'
10-11-2021[10:58:26 AM]: Engine: property 'ServiceAccountPassword' value now 'mypas'
10-11-2021[10:58:26 AM]: Engine: property 'ServiceAccountPassword' value now 'mypass'
10-11-2021[10:58:26 AM]: Engine: property 'ServiceAccountPassword' value now 'mypassw'
10-11-2021[10:58:27 AM]: Engine: property 'ServiceAccountPassword' value now 'mypasswo'
10-11-2021[10:58:27 AM]: Engine: property 'ServiceAccountPassword' value now 'mypasswor'
10-11-2021[10:58:27 AM]: Engine: property 'ServiceAccountPassword' value now 'mypassword'
10-11-2021[10:59:27 AM]: Final command line: REBOOT=ReallySuppress TRANSFORMS=1033.mst SERVICEPASSWORD="mypassword" <rest of command line removed>
找到解决方案:
InstallShield Suite 设置有一个“ISHiddenProperties”属性。
试用过,有效。
Link 到 Official Revenara documentation
来自官方文档的文本:
To prevent a property from being written in the log file:
In the View List under Behavior and Logic, click Property Manager.
In the Name column, find the ISHiddenProperties property.
If this property is not listed, click the New Property button to create this property, and in the Name column, enter ISHiddenProperties
.
In the Value column, enter the name of the property whose value you do not want to be logged; ensure that you use the same capitalization.
To list more than one property, separate each with a semicolon (;).
Note that ISHiddenProperties is useful for prevention of logging for
values in the following scenarios:
• The value of the property changes.
• The end user sets the value of
the property through command line when launching the Advanced UI or
Suite/Advanced UI Setup.exe file.
• The property is configured through a command line that the Advanced UI or Suite/Advanced UI installation
passes to a package. This is configurable in the Packages view, on the
Common tab, in the Operation area.
If the property is logged through
ISuiteExtension::LogInfo, the Suite engine cannot prevent the logging.
Therefore, any code that you create to write a property value to the
log file should read ISHiddenProperties to see whether the property
value should be logged.
在使用 /debuglog 命令行时,是否有办法在 InstallShield Suite/Advanced UI 项目中隐藏一些敏感属性? 类似于 MSI 项目的 MsiHiddenProperties?
场景:
- 为 Windows 使用 InstallShield 2015 Premier
- 有一个 PasswordBox 控件绑定到一个安装程序 属性(你知道,那个隐藏了 UI 上的值的控件)
问题: 在以下情况下,密码以明文形式写入设置日志:
- 问题 1:用户更改了 PasswordBox 的值
- 问题 2:密码值被转发到 MSI 命令行
现在日志输出如下所示:
10-11-2021[10:58:25 AM]: Engine: property 'ServiceAccountPassword' value now 'm'
10-11-2021[10:58:25 AM]: Engine: property 'ServiceAccountPassword' value now 'my'
10-11-2021[10:58:26 AM]: Engine: property 'ServiceAccountPassword' value now 'myp'
10-11-2021[10:58:26 AM]: Engine: property 'ServiceAccountPassword' value now 'mypa'
10-11-2021[10:58:26 AM]: Engine: property 'ServiceAccountPassword' value now 'mypas'
10-11-2021[10:58:26 AM]: Engine: property 'ServiceAccountPassword' value now 'mypass'
10-11-2021[10:58:26 AM]: Engine: property 'ServiceAccountPassword' value now 'mypassw'
10-11-2021[10:58:27 AM]: Engine: property 'ServiceAccountPassword' value now 'mypasswo'
10-11-2021[10:58:27 AM]: Engine: property 'ServiceAccountPassword' value now 'mypasswor'
10-11-2021[10:58:27 AM]: Engine: property 'ServiceAccountPassword' value now 'mypassword'
10-11-2021[10:59:27 AM]: Final command line: REBOOT=ReallySuppress TRANSFORMS=1033.mst SERVICEPASSWORD="mypassword" <rest of command line removed>
找到解决方案:
InstallShield Suite 设置有一个“ISHiddenProperties”属性。
试用过,有效。
Link 到 Official Revenara documentation
来自官方文档的文本:
To prevent a property from being written in the log file:
In the View List under Behavior and Logic, click Property Manager.
In the Name column, find the ISHiddenProperties property.
If this property is not listed, click the New Property button to create this property, and in the Name column, enter
ISHiddenProperties
.In the Value column, enter the name of the property whose value you do not want to be logged; ensure that you use the same capitalization. To list more than one property, separate each with a semicolon (;).
Note that ISHiddenProperties is useful for prevention of logging for values in the following scenarios:
• The value of the property changes.
• The end user sets the value of the property through command line when launching the Advanced UI or Suite/Advanced UI Setup.exe file.
• The property is configured through a command line that the Advanced UI or Suite/Advanced UI installation passes to a package. This is configurable in the Packages view, on the Common tab, in the Operation area.
If the property is logged through ISuiteExtension::LogInfo, the Suite engine cannot prevent the logging. Therefore, any code that you create to write a property value to the log file should read ISHiddenProperties to see whether the property value should be logged.