你知道在网页上登录QQ帐号时,自己的浏览器和腾讯服务器之间是如何交互验证的吗?而这个过程中具体的流程又是怎样的?好,这节教程就来跟大家简单探讨一番。明白了这些基本的知识,对于我们以后分析腾讯Web登录接口和编写软件时调用有很大帮助哦!
要想达到分析(网页)QQ登录过程,肯定要对网页进行
抓包分析咯,以下是菲菲使用火狐浏览器的Firebug插件得到的相关结论:
1、当你输入QQ号码后,网页脚本就会通过此网址
http://check.ptlogin2.qq.com/check?uin=QQ号码&appid=产品编号 发送GET请求来检查你的QQ是否存在异常情况,如异常就会自动出现验证码。
2、输入你的QQ密码(有时还需验证码)后提交登录,这一步是重点。和大多数登录表单不同的是,登录QQ时是以GET的方式来验证帐号的(一般登录表单都是POST方法)。简化后的腾讯登录服务器地址是:
http://ptlogin2.qq.com/login?u=QQ号码&p=加密后的密码&verifycode=验证码&aid=产品编号
向QQ服务器发送登录请求后,如验证通过则通过HTTP响应中的Set-Cookie头向浏览器的内存写入
cookie密钥(主要是uin和skey),这样浏览器就记住了你的登录信息。如帐号验证失败,则返回相关的错误原因,例如验证码错误、密码不正确等等。
3、登录成功后,我们就会自动跳转至目标网站(比如QQ空间),那么空间服务器是如何晓得你是否已经登录了呢?原来在访问空间服务器时,HTTP请求头中就会自动带上QQ域名下的cookie密钥去访问。空间服务器只需判断cookie中的uin/skey值是否正确就可以知道你是否登录了。看到这儿,是不是终于明白了为什么我们拿到对方的
skey 也就相当于拿到了对方的登录权限呢?【