所以我需要更改一些属性以确保它们在维护/更改模式中可以正确访问
<Property Id="CA_FILE" Secure="yes" />
但这样做对安全有什么影响?来自wix文档
表示在使用提升的权限进行托管安装时,可以将属性传递到服务器端。有关详细信息,请参阅SecureCustomProperties属性。
来自msdn文档
SecureCustomProperties是一个由分号分隔的公共属性列表。这些属性包含在受限制公共属性的默认列表中,安装程序在使用提升的权限进行托管安装时可以将这些属性传递给服务器端。
但它对安全性的具体要求是什么?我是否需要特别注意与相比的非安全属性中传递的内容?尤其是如果是用户输入?
我不确定以下内容是否能回答您的问题,但无论如何,让我添加它:
提升权限 :在安全的桌面环境中(用户作为标准用户操作,没有管理权限(;提升权利";安装而不是";管理员权限";。这意味着普通用户使用临时提升的权限进行安装,这与正常的";管理员权限";。对于这些安装场景,您需要确保使用安全属性,否则安装将失败。需要注意的是,即使您使用安全属性,在提升权限的情况下,其他事情也可能导致安装失败(例如,其他自定义操作问题和InstallShield特定问题(。这里有很多细节。
客户端&服务器进程 :MSI安装既有客户端进程(作为用户上下文运行(,也有服务器进程(作为本地服务运行,具有修改系统所需的所有访问权限(。后一个进程完成安装工作,客户端进程显示GUI并开始真正的安装。在这一点上,客户端进程将安装会话交给服务器进程,并且任何未被设置为安全的属性将不可用于服务器进程,因为它们将不"安全";移交";默认情况下。这就是安全属性的作用——它们将被传递。
SecureCustomProperties :特殊属性SecureCustomProperties包含服务器进程中应可用的属性的分隔列表。只能指定大写字母(公共属性(。
受限公共属性 :现在我们来了解MSI文档的这一部分:"在托管安装的情况下,包作者可能需要限制哪些公共属性被传递到服务器端,并且可以由非系统管理员的用户进行更改。当安装程序要求安装程序使用提升的权限时,为了维护安全环境,通常需要一些限制">所以本质上有限制;提升用户";可以根据安装程序属性进行覆盖。据我所知,这些特性是如何以详细的技术术语传递的,没有记录在案。
Windows :Windows操作系统工作方式的更改有时会干扰MSI操作。因此,仅仅设置这些属性的安全性以使安装正确运行可能是不够的。
自定义操作
:使用true"提升特权";由于MSI中自定义操作的实现非常复杂,因此也变得困难。供应商包中经常存在错误,当使用";提升权利";与";管理员权限";。人们通常用";真正的管理权限";(例如,通过SCCM-Microsoft Endpoint Configuration Manager等专用分发系统(,允许安装程序在没有任何与提升相关的错误的情况下进行安装。或者他们只是从一个升高的cmd.exe
开始安装。
MSI的优点 :需要提醒的是,MSI的成功是基于与以前的部署技术相比的许多关键优点(尽管存在缺陷(。
链接:
- MSI适用于系统管理员
- 有关msiexec.exe进程的详细信息
- SecureCustomProperties的使用