安全、 服务和在 Windows 中的交互桌面

文章翻译 文章翻译
文章编号: 327618 - 查看本文应用于的产品
展开全部 | 关闭全部

简介

在 Microsoft Windows 中的服务通常是控制台应用程序以无人参与的情况下运行而设计的。因此,服务通常没有用户界面。但是,服务可能需要与在某些情况下用户交互。

更多信息

重要我们强烈建议该服务 没有 作为交互式服务运行,如果在 SYSTEM 如提升的安全上下文中运行的服务。

对于 Windows 用户界面桌面是安全边界。 即使该窗口不会显示在桌面上任何交互式桌面上运行的应用程序可以与交互式桌面上的任何窗口进行交互。此行为是为每个应用程序无论创建窗口的应用程序的安全上下文,无论在桌面上运行的应用程序的安全上下文,则返回 true。Windows 消息系统不允许以确定窗口消息的源应用程序。

由于这些设计功能的打开一个窗口,在交互式桌面上的任何服务正在公开自身以执行登录的用户的应用程序。 如果该服务将尝试使用窗口消息来控制其功能,登录的用户可以通过使用恶意邮件中断该功能。

最好,作为系统交互桌面支持通过使用调用 OpenWindowStation 函数和 GetThreadDesktop 函数和语句创建一个用户界面运行任何服务评估以解决安全问题。

在 Microsoft Windows NT 4.0 中,并在 Microsoft Windows 2000 中,安全不完全实施限制访问的交互式窗口工作站的默认桌面。当应用程序试图显示用户界面时,窗口站安全不查询 WINSTA_READSCREEN 访问权限。如果登录安全标识符 (SID) 无法访问此窗口站,该 SID 下运行的进程应该不能访问屏幕内容。

在 Microsoft Windows XP 中,正确实施此限制。当 SID 试图向屏幕绘制一个登录下运行的进程时,GDI 子系统将验证是否登录令牌具有 WINSTA_READSCREEN 访问权限。如果登录令牌不具有访问权限,则不完成绘制操作。此行为将导致绘图的缺陷。当您通过使用 LogonUser 属性已经获取的令牌运行 GUI 应用程序时,您可以看到这些缺陷。LogonUser 属性就是为当前登录用户的用户名。

我们建议的一种客户端/服务器技术,如远程过程调用 (RPC) 套接字,命名管道或到服务中的登录用户与之交互的 COM 服务编写器使用。此外,建议使用与 MB_SERVICE_NOTIFICATION 标志一起 MessageBox 函数显示简单的状态消息。

属性

文章编号: 327618 - 最后修改: 2005年11月3日 - 修订: 2.1
这篇文章中的信息适用于:
  • Microsoft Platform Software Development Kit-January 2000 Edition
关键字:?
kbmt kbdevsecurity kbshell kbui kbgdi kbinfo KB327618 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 327618
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com