微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在MSI日志中隐藏customactiondata的值?

如何解决如何在MSI日志中隐藏customactiondata的值?

我有一个延迟的自定义操作,该操作使用Customactiondata获取属性,它包含不应在日志中显示的password值。

使用的打包工具:WIX

用C ++编写的自定义操作

我尝试了以下变通办法,似乎没有任何作用。

  1. 属性和CA名称标记为隐藏

  2. 在CA定义中隐藏目标=是

要做什么?

代码

<CustomAction Id="CASETLOGINFORRCSERVICES" Return="check" HideTarget="yes" Execute="deferred" Impersonate="no" TerminalServerAware="no" DllEntry="SetLoginForRCServices" BinaryKey="CA_Dll" />

日志:

MSI (s) (7C:CC) [18:35:39:011]: Executing op: CustomActionSchedule(Action=CASETLOGINFORRCSERVICES,ActionType=3073,Source=BinaryData,Target=SetLoginForRCServices,CustomActionData=Deps@@@151232323)
MSI (s) (7C:B0) [18:35:39:038]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSIEB69.tmp,Entrypoint: SetLoginForRCServices

解决方法

将HideTarget =“ Yes”添加到自定义操作中。

,

MsiHiddenProperties :您可以设置一个属性,以隐藏属性值以免被写入日志:MsiHiddenProperties property(那里还有其他链接有关在您的MSI中防止机密信息的更多信息。

自定义操作 :为自定义操作设置属性 HideTarget="yes" 将为您设置上述属性值。但是,此功能似乎并未在日志中隐藏您在属性表中进行硬编码的任何值-因此,如果您在属性表中为属性设置了实际值,则还需要将属性本身设置为隐藏(您可以设置以编程方式或通过GUI设置值,而无需在属性表中进行设置)。这里是示例:

HideTarget="Yes"

<CustomAction Id="ReadProperyDeferred" HideTarget="yes" ... />

Property Hidden="yes"

<Property Id="MYPROPERTY" Hidden="yes" Secure="yes">Text</Property>

示例 :有一个sample WiX source file here显示了所有这些用法 整个项目都采用zip格式:https://github.com/glytzhkof/all/blob/master/DeferredModeSampleCSharp.zip(只需单击“下载”按钮-我觉得有点困惑)。

敏感信息 :以下是防止敏感或有害信息进入您的MSI的答案:How do I avoid distributing sensitive information in my MSI by accident?


代码提取 :更喜欢打开上述示例。但是,这是延迟模式自定义操作从集合属性自定义操作中检索数据所需的WiX构造的“压缩”序列:

<Property Id="MYPROPERTY" Hidden="yes" Secure="yes">Send this text to deferred mode</Property>
<Binary Id="CustomActions" SourceFile="$(var.CustomActionSample.TargetDir)$(var.CustomActionSample.TargetName).CA.dll" />

<CustomAction Id="SetProperty" Return="check" Property="ReadProperyDeferred" Value="[MYPROPERTY]" />
<CustomAction Id="ReadProperyDeferred" HideTarget="yes" BinaryKey="CustomActions" Execute="deferred" DllEntry="TestCustomAction" />

<InstallExecuteSequence>
  <Custom Action='SetProperty' Before='InstallInitialize'></Custom>
  <Custom Action='ReadProperyDeferred' Before='InstallFinalize'></Custom>
</InstallExecuteSequence>

链接

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。