疑惑: 二次验证的状态是如何保存的?

2021-08-24 14:22:39 +08:00
 qinxs

问题描述

是腾讯云函数对 https://www.baacloud34.com 自动签到时遇到的问题
之前一直正常,但最近这个网站增加了邮件的二次签到,导致了不能自动签到了

已知情况

在请求 https://www.baacloud34.com/modules/_login.php 时,返回值如下

已二次验证

  code: "1"
  ok: "1"
  msg: "欢迎回来"
  url: "/modules/"

未二次验证

  code: "1"
  ok: "1"
  msg: "欢迎回来"
  url: "/modules/login2.php?email=XXXXX@sina.cn&password=XXXXXX"

测试情况

  1. 清除 该网站所有数据(包括 Cookie )后 重新请求 二次验证的状态依然存在(返回值中 url 为 "/modules/")
  2. 换浏览器请求 需要二次验证;使用相同浏览器的新建隐身窗口 不需要二次验证
  3. (在浏览器端 已通过二次验证后)开启抓包软件 需要重新二次验证

猜测应该是把当前的环境数据发送到服务器 根据在服务器端判断
能否得到这些关键数据 用于 python 中?

1635 次点击
所在节点    程序员
7 条回复
Leegod
2021-08-24 18:06:19 +08:00
公司网站后台也有这个需求,我是直接数据库存浏览器 ua,登陆的时候对比一次
2i2Re2PLMaDnghL
2021-08-25 14:36:01 +08:00
开启抓包软件是指 Fiddler 之类的中间人吗?
这样的话我怀疑还包括 TLS 指纹,你可能只能上无头浏览器或者在 Python 中触发二次请求并写个 IMAP 客户端自动收信。
zhhww57
2021-08-25 14:40:11 +08:00
localstorage 检查了没有?
qinxs
2021-08-25 17:04:24 +08:00
@Leegod
模拟请求时,UA 设置一样,还是无效

@2i2Re2PLMaDnghL
就是使用 Fiddler
感觉原来像很多 APP 的信任设备(我查下 TLS 指纹);实在不行,只能尝试从邮件读取验证码了

@zhhww57
不是 localstorage,浏览器端的几个信息都检查了的
phpnote
2021-08-25 17:24:21 +08:00
隐身窗口都能通过验证,这就有点神奇了
zhhww57
2021-08-30 17:01:51 +08:00
这个验证有点像当初阿里云的验证,开两个隐身窗口,结果第二个里面也显示登录了
qinxs
2021-09-09 19:50:14 +08:00
半个月过去了
这问题 最终还是 通过从邮箱读取验证码 解决了~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/797699

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX