共计 1049 个字符,预计需要花费 3 分钟才能阅读完成。
我没有图床,简化了一下初始数据,大家看看这个表格凑合下吧
ip | GET | 请求时间 | UA | reference |
---|---|---|---|---|
用户 1 的 ip | GET /page?code=1234&time=20240625223527 | 6 月 25 日 22:35:27 | WeChat/arm64 Weixin | example.com |
106.55.200.233 腾讯云 | GET /page?code=1234&time=20240625223527 | 6 月 26 日 03:16:37 | Linux; U; Android 2.3.7 Nexus One Build | null |
用户 2 的 ip | GET /page?code=5678&time=20240527104924 | 5 月 27 日 10:49:24 | QQBrowser/12.5.5646.400 | example.com |
106.55.200.246 腾讯云 | GET /page?code=5678&time=20240527104924 | 5 月 27 日 16:39:29 | Linux; Android 4.4.2 Nexus 4 Build | null |
以上是挑了几条日志来说明情况,我发现的问题主要是以下几点:
- 腾讯云的 IP 持续 get 我网站上的某些资源;
- 这些 get 看起来像是对一段时间之前的请求(code 和时间戳)重放;
- 这些不正常请求的 UA 看起来都不对劲,早期 Android;
- 这些不正常请求的 UA 没有明显的爬虫标识;
- 在这些不正常的请求之前,那些正常的请求包含一些腾讯的 UA 标识;
- 这些不正常的请求,没有 reference 值;
- 第 5 条提到的标识包含 wechat 或者 qqBroswer 或者 microMessage;
- 第 2 点提到的现象,在微信的开发者论坛里有相似的现象;
- 在 nginx 日志里找了几个没有腾讯 UA 的 get 请求,未发现腾讯 IP 使用这些 code 的访问记录
我在 nginx 里看到的类似日志非常多,我猜测事情是这样的:
- 使用微信或者 QQ 浏览器打开 example.com
- 做一些操作,发生了 GET example.com/page?code=code&time=time 请求
- 这些请求被记录在了某个地方
- hacker 获取到了这些记录
- hacker 用腾讯的 IP 重放了这些请求
但是问了腾讯云的客服,客服说这些 IP 不会被分配给虚拟机或者容器等用户,不会吧不会吧,难道 hacker 就是腾讯云吗?
话说大家还记得当时 QQ 和 Tim 访问 edge 浏览器历史记录的事情吗?
下一步我本来是想想办法帮腾讯排除嫌疑,但是我累了,不想再查了,看日志眼睛快瞎了,把这些 UA 封禁了得了。
我放弃了,我只能到此为止了,有兴趣的大佬请收下我最后的波纹~
正文完