探究网页中检测QQ登录原理

   转载自 http://taurus-ly.com/articles/2012/02/153.html

也可以看看这篇博客 腾讯的网站如何检测到你的 QQ 已经登录?


在登录QQ邮箱时会自动检测QQ是否已经登录(阿里旺旺也有这个功能了,不过经常不好用),今天突然发觉,这也是个小小的技术点,今天就来探究一下

PS:之前也有人分析过此问题,如:
http://www.cnblogs.com/cxwx/archive/2010/07/01/1768957.html
http://www.iteye.com/problems/77473

    最刚开始有几种设想:

    1) QQ登录时在本地某地方存登录ID信息(Cookie或文件),用JS读,然后去服务器认证。后来得知现在的浏览器一般有沙箱功能,JS无法读到登录ID;而且在清空Cookie后依然起作用

    2) 以IP、CPU ID、硬盘ID为标识,QQ登录时在服务器记录此信息,JS验证。感觉此方法依赖环境过多,QQ不太可能采用此方法

    3) QQ启动某端口监听,JS连接此端口。此方法可能性最大,但是用netstat查看后,QQ并没有监听端口

 

    到底用了啥技术呢?经过在g上各种搜,发现使用的是历史很悠久的NPAPI(Netscape Plugin Application Programming Interface)。NPAPI几乎支持所有主流浏览器,包括FF、Chrome、Opera;IE从5.5后停止支持NPAPI,转而使用ActiveX。

    QQ的插件名为:NPTXSSO Dynamic Link Library

    路径:

    C:Program Files (x86)Common FilesTencentTXSSO1.2.1.38binnpSSOAxCtrlForPTLogin.dll

    FF(查看方法:附加组件->插件):

   

    Chrome(查看地址:chrome://plugins/):

   

    IE(查看方法:为动态加载项,使用360查看):

   

     详细信息:

   

   

    一些资料:

    http://www.cppblog.com/cdy20/archive/2012/02/09/165232.html

    http://lanhy2000.blog.163.com/blog/static/4367860820115183115212/

    http://geeklu.com/2010/10/getting-started-with-npapi-plugin/comment-page-1/

 

你可能感兴趣的:(探究网页中检测QQ登录原理)