windows下的session隔离机制以及带来的影响
2016-11-10 09:21
561 查看
关于windows的session机制,我们先来看下官方文档中的描述:
In Windows® XP, Windows Server® 2003, and earlier versions of Windows, all services run in Session 0 along with applications. This situation poses a security risk. In Windows Vista®, Windows Server 2008, and later versions of Windows, the operating system
isolates services in Session 0 and runs applications in other sessions, so services are protected from attacks that originate in application code.
从windows xp以及server 2003开始,在以后的windows版本中,session 0不再是一个用户session,系统中所有的系统进程和服务都运行在session 0上,同时session 0在系统中是没有UI的,session 0 不接收任何UI的输入输出。相对应登录用户启动的应用都运行在相对应登录用户的session ID上,用户登录所启用UI的session ID和启用应用的session ID是相同的。这样设计带来的好处官方文档中对此的描述是能够使应用的代码攻击不了系统的服务。但在实际应用中,却对远程操作系统带来了一定的麻烦。
由于在实际环境中,远程控制软件是以服务的形式安装在操作系统上的,因此该服务所启的进程一定是运行在session 0上的。但实际需要部署的应用却需要接受用户session所发来的消息队列。我们看下官方文档对此的描述:
A service tries to use window message functions such as SendMessage and PostMessage to communicate with an application. This does not work because the application is running in a different session and therefore has a different message queue.The messages
never arrive at their destination. The same is true for applications that try to communicate with services through window messages.
也就是说用户程序调用SendMessage和服务进程进行通讯时,由于不同的session有不通的消息队列,因此消息是无法发送到服务进程的。同时,系统也不支持让用户在session 0上进行UI的操作。因此,必须把服务应用部署在非session 0上才能保证服务应用正常工作。那就意味着远程控制软件必定不能以服务的形式而必须以用户登录启动的形式安装在系统上。这样才能保证远程启动的应用的进程和用户发送的消息在同一个session中被消息队列进行处理。
In Windows® XP, Windows Server® 2003, and earlier versions of Windows, all services run in Session 0 along with applications. This situation poses a security risk. In Windows Vista®, Windows Server 2008, and later versions of Windows, the operating system
isolates services in Session 0 and runs applications in other sessions, so services are protected from attacks that originate in application code.
从windows xp以及server 2003开始,在以后的windows版本中,session 0不再是一个用户session,系统中所有的系统进程和服务都运行在session 0上,同时session 0在系统中是没有UI的,session 0 不接收任何UI的输入输出。相对应登录用户启动的应用都运行在相对应登录用户的session ID上,用户登录所启用UI的session ID和启用应用的session ID是相同的。这样设计带来的好处官方文档中对此的描述是能够使应用的代码攻击不了系统的服务。但在实际应用中,却对远程操作系统带来了一定的麻烦。
由于在实际环境中,远程控制软件是以服务的形式安装在操作系统上的,因此该服务所启的进程一定是运行在session 0上的。但实际需要部署的应用却需要接受用户session所发来的消息队列。我们看下官方文档对此的描述:
A service tries to use window message functions such as SendMessage and PostMessage to communicate with an application. This does not work because the application is running in a different session and therefore has a different message queue.The messages
never arrive at their destination. The same is true for applications that try to communicate with services through window messages.
也就是说用户程序调用SendMessage和服务进程进行通讯时,由于不同的session有不通的消息队列,因此消息是无法发送到服务进程的。同时,系统也不支持让用户在session 0上进行UI的操作。因此,必须把服务应用部署在非session 0上才能保证服务应用正常工作。那就意味着远程控制软件必定不能以服务的形式而必须以用户登录启动的形式安装在系统上。这样才能保证远程启动的应用的进程和用户发送的消息在同一个session中被消息队列进行处理。
相关文章推荐
- Windows 服务的Session 0 隔离机制
- Windows 服务的Session 0 隔离机制
- Windows 服务的Session 0 隔离机制
- Windows中Session 0隔离对服务程序和驱动程序的影响
- Windows中Session 0隔离对服务程序和驱动程序的影响
- Windows中Session 0隔离对服务程序和驱动程序的影响
- Windows中Session 0隔离对服务程序和驱动程序的影响
- 对session对象在web开发中的创建以及sessionId生成并返回客户端的运行机制.
- asp.net中,Session的保存机制以及哪三种方式,以及各自的用途和优点/缺点。
- session的实现机制以及与cookie的区别
- 函数对象的意义:泛型算法应用以及避免重载带来的全局影响
- java同步以及I/O操作带来的影响
- 解决vista和win7在windows服务中交互桌面权限问题:穿透Session 0 隔离
- 解决vista和win7在windows服务中交互桌面权限问题:穿透Session 0 隔离
- 穿透Session 0 隔离(二)(How to use Windows service run a GUI application.)
- PHP的Session阻塞机制带来的单页面多ajax请求阻塞的解决
- 数据库的事务、脏读、不可重复读和幻读 以及隔离机制
- PHP的session阻塞机制带来的单页面多ajax请求阻塞的解决
- 关于hibernate一级,二级缓存以及事务隔离机制。
- 解决vista和win7在windows服务中交互桌面权限问题:穿透Session 0 隔离