windows下的session隔离机制以及带来的影响

      关于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中被消息队列进行处理。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值