【问题标题】:Is it acceptable to use a hidden window in a server application on Windows?在 Windows 上的服务器应用程序中使用隐藏窗口是否可以接受?
【发布时间】:2011-04-01 19:54:58
【问题描述】:

我正在考虑在服务器中使用WSAAsyncSelect。但是我需要一个窗口来接收消息。

在没有 GUI 的服务器应用程序中是否可以接受这样的(隐藏的)窗口?会不会导致意想不到的问题?

【问题讨论】:

  • 您也可以考虑将您的套接字代码移至单独的线程。

标签: c++ winapi user-interface


【解决方案1】:

使用隐藏窗口可能没问题,甚至更好,使用message only window

你有什么理由不能使用WSAEventSelect 和事件来代替吗?

【讨论】:

  • 谢谢,我不知道 WSAEventSelect。看起来像要走的路!
【解决方案2】:

可能导致问题,如果您对某些可以广播(或恶意直接发送)的消息做出反应。正确的方法是在这种情况下忽略它们。显然,“流氓”进程可能会在隐藏状态下将内容发送到您的窗口。我说这可能是一个问题的原因,因为这正是几年前shatter attacks 所允许的。较高权限的进程接受来自较低权限进程的消息。

在较新的 Windows 版本中,完整性级别ChangeWindowMessageFilterEx 函数(等)有助于降低风险。

就个人而言,我认为您没有提供足够的数据来以您可能期望的确定性评估情况。我只是想确保您了解,是的,即使对于隐藏的窗口也存在风险,您应该采取预防措施来减轻风险。但我同意安德斯,为什么不使用WSAEventSelect 并放弃窗口?

【讨论】:

    猜你喜欢
    • 2011-02-25
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多