此文主要讨论了关于不同运行环境之间的登录验证处理机制,通过客户端打开浏览器页面进行登录验证,通过浏览器打开客户端进行登录验证。主要研究的对象为QQ和阿里旺旺。
QQ clientKey:
每次我们打开QQ空间,你都可以发现上面的网址始终是http://user.qzone.qq.com/QQ号/infocenter,但很奇怪的是,当打开日志时,上面的网址还是没变。下面进入我今天要说的正题:
1. 因为我对网页技术不懂,所以我不知道腾讯是用什么技术,但我猜测应该是对真实网址网址的隐藏。体现在:在我们打开QQ空间后,如http://user.qzone.qq.com/QQ号/infocenter,在infocenter加上/blog,即你可以直接在浏览器中打http://user.qzone.qq.com/QQ号/infocenter/blog 这时你看见的仍然是日志,好了,如何打开其他东西就靠大家探索了。其中
/music表示音乐盒 ,/photo表示相册(其他我就不知道)
2.如果说第一条仅供娱乐,那这条就有很大的研究价值了。
我刚才说腾讯用一只技术在隐藏着它的真实网址,其实我们所见到的http://user.qzone.qq.com/QQ号/infocenter都是假的。
你现在可以想办法把你家的网络弄卡,越卡越好。(比如用迅雷全速下载东西),然后打开QQ空间,你最先发现应该是一段长长的网址,你可以把它复制下来。
http://ptlogin2.qq.com/jump?ptlang=2052&clientuin=QQ号&clientkey=个人权限码&u1=http%3A%2F%2Fuser.qzone.qq.com%2FQQ号%2Finfocenter&ADUIN=QQ号&ADSESSION=1297683241&ADTAG=CLIENT.QQ.3127_Mysrv.0
我已经把其中关键部分删去,为什么呢?你可以接着往下看。
既然它最先出来的是一段长长的网址,后来突然变短了,所以我猜测它是跳转链接,而目标链接应该是个人权限码后面等号后面的网址(我没学过网络技术,所以以上只是猜测,但一下是经过我验证的)
无论是谁的QQ,打开QQ空间时,其链接的 大致框架应该就是这样,不一样的地方就是我上面被替换的三处QQ号和个人权限码,再精确到一个QQ上时,(QQ号已经固定),变化的只有clientkey。好了,技术部分就讲到这。
下面是应用:
1.经过我研究,clientkey每10min换一次,我没找到有什么规律,当clientkey更换时,上一个clientkey仍然是有效的。也就是说同一个QQ空间可以对应多个网址。(但时间太长的clientkey会报废)
2.用此方法打开的网址均拥有主人权限。
3.如果真正主人正在打开QQ空间,你再用这种方法打开QQ空间,你就会被顶下去(同一个QQ不可同时在两个地点登录。QQ空间亦是如此)
4.将此方法拓展,可应用于所有地方。即相当于拥有QQ密码(clientkey全局通用)。(之前需先找个小号,把网址框架套出来)
旺旺Token:
通过旺旺打开订单详情时产生如下地址,其中Token为访问密码,类似QQ的ClientKey。
总结:
各环境之间进行登录验证采购了访问码的机制,即调用者先获取访问码(ClientKey或Token),然后传给被调用者,被调用者根据此访问码来完成登录处理,而不用通过调用者的帐号和密码来进行操作。
安全:QQ的ClientKey生成后,在一段时间内,可以在任何机器上使用,安全性不太好。阿里旺旺的为仅允许使用一次,使用后失效。如需考虑更安全的机制可以考虑绑定IP等方法。
相关链接:
JS 获取ClientKey: