DesktopBridge应用能否开放DLL供第三方非打包应用加载及权限问题
问题解答
1. 能否不通过UAC修改DLL权限?
不行。DesktopBridge应用的安装目录(通常在C:\Program Files\WindowsApps下)受Windows系统严格保护,目录内文件的所有者是SYSTEM。要修改这类文件的ACL权限,必须拥有管理员权限——而获取管理员权限绕不开UAC弹窗验证。
你的全信任应用默认运行在当前用户的普通权限上下文,即便标注了全信任,也没有足够权限去修改受保护目录下的文件权限。除非你给应用添加runAsAdministrator的清单配置,但这样启动应用时必然会触发UAC,不符合你“不通过UAC”的要求。
2. 为何默认仅授予读取权限?
这是Windows应用模型的安全设计:
- 应用包内的文件属于应用私有资源,设计初衷就是仅让所属应用包加载执行,避免第三方非授权应用随意调用或篡改,防止恶意利用或破坏应用完整性。
- 限制Users组的执行权限,能减少应用包内文件被当作攻击载体的风险,符合现代Windows的安全隔离原则。
如果你的场景需要第三方应用加载这些DLL,更合理的方案是:将DLL部署到公共目录(比如Program Files下的独立文件夹),或者通过服务进程(以SYSTEM权限运行)来提供DLL的加载能力,而非修改应用包目录的权限。
内容的提问来源于stack exchange,提问作者LOST
相关产品推荐
相关产品推荐

