TIM3.0 SSO单点登录探究
说实话TIM2确实好用,TIM3都不知道是什么辣鸡也敢升级!是打算替代某钉还是想做成企业微信的电脑版?之前用的TIM2好好的呢,然后腾讯宣告不支持了,无法验证通过密码(记住密码的可以继续用,记住密码也有个周期,也就是周期结束的话还是要被强制升级的),于是升级到了TIM3。在登录论坛是发现单点登录貌似无法使用,主要因为论坛每过一段时间就要重新登录,没有SSO那就相当的麻烦。那今天就来研究一下到底哪里出了问题吧。
接下来进入正题,为毛线TIM3,这么辣鸡。到底是什么阻碍了我的SSO正常使用。
首先打开浏览器,SSO登录论坛,抓取到TIM3如下数据,
在Chrome(实际为ChromeCore)中可以看到,当我打开SSO登录时,内部实质是嵌套了这么个东西,也就是直接从这个嵌套的iframe来分析就完事了,外面的东西略过。
可以看到,在Chrome中打开SSO的时候,我们是有Requests Cookies和Response Cookies的。Requests Cookies是从本地提交给服务器的Cookies,一般是记住上一次使用过的Cookies或者是本地生成了一个。至于是哪种,暂时不需要仔细研究。另外的就是Response Cookies,这个是服务器返回的新的Cookies,一般首次打开网页或者用户成功认证后通过服务器Set-Cookie设置。
localhost.ptlogin2.qq.com的解析是127.0.0.1,就是本机回环地址。可以看到,从xui.ptlogin2.qq.com到localhost.ptlogin2.qq.com时,没有带入新的Cookies,也就是跨域存在问题,再来看IE浏览器,不存在问题,可以跨域。所以问题到这里很明显了,那就是老版本的TIM2或者QQ,都是存在安全问题的(这是我猜测的),根本没有代入pt_local_token参数,或者说没有认证pt_local_token。这不仅仅是个跨域上的问题,也是安全问题,在新版QQ和TIM3上无法继续使用SSO,这并不是阉割,是次安全更新。本来我是想说某讯你是小学生开发的么?
SSO的基本原理可以理解为这个样子的,先获取pt_local_token,然后访问localhost.ptlogin2.qq.com(127.0.0.1),提交给本地的接口。从下图可以看出来,4301、4303、4305、4307、4309这些端口都是可以被SSO使用,也就是全部都是单数这样规律来遍历获取。然后接口返回UIN等用户信息(注意这个步骤不是登录,本章内容不涉及,避免大家做坏事),如果全部遍历后没有正常获取参数那就SSO获取失败了。
至于如何解决?解决正确的代入pt_local_token就能解决。
JuncoJet 发表于 2021-4-22 16:52
结构的话,就分目录名和文件名
搜索使用暴力搜素,使用C库的strstr,实测C库无敌了比BM、Sunday等算法更 ...
哇塞 大佬回复了 非常感谢 我用倒排索引 感觉好难尤其是倒排表 压缩解压 等直接用strstr 真的有那么快 我试试 再次感谢大佬 suoniao 发表于 2021-4-22 16:37
大佬 请教 你的搜索软件 搜索算法和索引数据结构 能否指点一下
结构的话,就分目录名和文件名
搜索使用暴力搜素,使用C库的strstr,实测C库无敌了比BM、Sunday等算法更快 感谢大佬分享 谢谢分享,学习了 nb克拉斯,虽然我看不懂 学习了,感谢大佬分享 感谢原创,学习一下 真牛叉,虽然看不懂 过来向大老看齐了 吃力学习中
nb克拉斯,虽然我看不懂 从xui.ptlogin2.qq.com到localhost.ptlogin2.qq.com时,没有带入新的Cookies,也就是跨域存在问题。
二级域名相同,可以共享cookie,不存在跨域问题