Windows 防止跨进程SendMessage调用
假设我有一个带有按钮的Windows GUI应用程序。我可以通过使用sendMessage winapi调用,将Windows 防止跨进程SendMessage调用,windows,winapi,sendmessage,Windows,Winapi,Sendmessage,假设我有一个带有按钮的Windows GUI应用程序。我可以通过使用sendMessage winapi调用,将BM_click作为调用的参数来模拟单击该按钮 现在,从安全角度来看,我不希望这种情况发生。i、 e.我的目标进程应忽略来自另一进程的sendMessage调用。是否有这样做的规定?验证sendMessage调用的方法 编辑:换句话说,我如何防止诸如Enabler、TurnitOn之类的应用程序访问不应由用户访问的功能?如果应用程序在用户自己的上下文中运行,那么它只能执行用户可以执行的
BM_click
作为调用的参数来模拟单击该按钮
现在,从安全角度来看,我不希望这种情况发生。i、 e.我的目标进程应忽略来自另一进程的sendMessage调用。是否有这样做的规定?验证sendMessage调用的方法
编辑:换句话说,我如何防止诸如Enabler、TurnitOn之类的应用程序访问不应由用户访问的功能?如果应用程序在用户自己的上下文中运行,那么它只能执行用户可以执行的操作。这通常被忽视的推论是,应用程序可以做的任何事情,用户都可以做 因此,担心这样一个应用程序上的按钮是否“真的”被禁用并没有什么意义。用户总是可以找到另一种方法来执行按钮要执行的任何操作。(这可能是通过使用注册表编辑器,获取具有相同功能的另一个应用程序,或者,如果没有其他方便的方法,他们可以在调试器中运行应用程序,并强制它重新启用按钮。) 适当的解决方案取决于上下文:
- 在许多情况下,最合适的解决办法是停止担心它。你应该能够信任你的用户,如果你不能,那是人力资源问题,而不是技术问题
- 如果应用程序为在更高上下文中运行的东西提供接口,例如,防病毒软件的前端,那么安全决策(是否允许用户这样做?)应该发生在后端。也就是说,安全决策需要由不在用户控制范围内的代码执行
- 如果您是一名系统管理员,试图锁定一台kiosk机器(一台将由不受信任的用户使用的机器,通常使用某种类型的单一来宾帐户),那么您可以使用AppLocker或软件限制策略来定义允许用户运行的应用程序。由于Enabler和TurnItOn不在您的列表中,用户将无法运行它们以绕过您的安全策略