首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows中中/高完整性进程之间的拖放

Windows中中/高完整性进程之间的拖放
EN

Stack Overflow用户
提问于 2009-07-23 12:41:32
回答 1查看 1.6K关注 0票数 1

在Windows中,我无法将文件拖放到应用程序的窗口中,因为它是作为高度完整性级别的进程运行的。我需要运行它的高度,但我也需要能够接受从低/中等完整性进程,如Windows资源管理器丢弃的文件。我相信是UIPI阻塞了拖放操作。我知道我可以使用ChangeWindowMessageFilter函数来允许某些Windows绕过UIPI,但我不确定要添加哪些消息来允许拖放操作。ChangeWindowMessageFilter是允许这样做的正确方法,还是有更好的方法?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2009-07-23 12:56:49

考虑到这篇博客文章的标题:

"有一个10英尺高的…",

(我想这不是最好的办法;)

现在,这一开始似乎是一种很好的方法--毕竟,只有当您确信可以完全验证接收到的消息时才使用Change­Window­Message­Filter,即使它来自不受信任的源,这样就不可能出错,对吗? 问题是,即使您这样做,您经常打开您的程序来攻击无意中的。 考虑一下自定义窗口消息通常是如何使用的;实际上,存在的所有公共控件在自定义类消息范围内都有“危险”消息(例如,WM_USER和朋友)。 此外,许多程序和第三方库将WM_USERWM_APP混为一谈,因此您可能会让程序通过WM_USERWM_APP通过用于作出敏感决策或包含指针参数的“危险”消息进行跨进程通信。

在这篇博客文章的评论中,讨论了另一种方法,但得出了几乎相同的结论:

我会使用RegisterWindowMessage,然后通过ChangeWindowMessageFilter允许这样做。 但是,请注意,您不能设计传递指针或其他不受信任值的跨进程窗口消息接口,或者您正在创建一个安全漏洞。 因此,我倾向于避免在大多数跨进程IPC中使用所有消息的窗口(如果可能的话),因为通常很难以安全的方式使用它们来做一些重要的事情。

注:这一条目"那么,今天谁想设计一个功能呢?“说明了同样的问题,并指出了陈雷蒙德的深刻文章:

  • 为什么控制台windows不以Windows为主题?
  • Windows在上下文菜单上有更多扩展选项

这两个细节都是问题的细节。

这个ServerFault问题"为什么我不能拖放一个文件,以便在Windows 2008的记事本中编辑?“也包含了一些答案,但没有快速获胜。

也请参阅此关于IE的文章

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1171474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档