QQ快速登录实现原理分析之localhost.ptlogin2.qq.com 怎么会映射到 127.0.0.1问题

445 阅读2分钟

前言

最近也在研究QQ快速登录实现原理,在研究过程中也遇到一个问题久久知道其运作原理。在QQ快速安全登录页面中,一个localhost.ptlogin2.qq.com:4301/pt_get_uins… 在这里插入图片描述


一、分析方法

1. 查看域名的DNS解析

通过查看Dns命令nslookup可以看出,有一条非权威应答指向的127.0.0.1,如下图所示。 在这里插入图片描述 查阅多方资料发现,其实这种映射其实很简单,就是域名解析的时候将子域名映射到127.0.0.1即可(前提你有注册域名),我想腾讯应该也是这样做的,这样处理可以完美解决浏览器跨域问题。

二、原理分析

实际上,本地QQ客户端监听了4300-4308端口,浏览器通过HTTP请求的方式,向本地QQ客户端发送请求,拿到了当前本地QQ客户端登录的账户信息。 浏览器向本地QQ发送请求时,请求中带上了能够令本地QQ确认网站合法性的参数,以防止非法用户获得当前本地QQ客户端的账户信息。

三、知识延伸

其实,这种有时候在本地测试需要用到指向本机的不同域名和IP,互联网上也有很多解析到127.0.0.1的域名,例如:

http://safe.taobao.com
http://114.taobao.com
http://ecd.tencent.com
http://wifi.aliyun.com
http://localhost.sec.qq.com
http://localhost.ptlogin2.qq.com

另外,还有一个专门解析到127.0.0.1的域名:localtest.me,也可以使用子域名。例如:

http://localtest.me
www.localtest.me
http://test.localtest.me
http://a.b.c.localtest.me
http://1234.localtest.me

码觉客微信公众号