惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

泫言

泫的 2025 年终总结 AI 好猛,和 AI 写了个面试题网站之后我想说 Kafka 不确认导致重复消费的问题 使用 FRP 和 WakeOnLan 远程电脑的方法 泫的 2024 年终总结 泫的新疆游记(三) 泫的新疆游记(二) 泫的新疆游记(一) 令我爱不释手的小米电纸书7英寸 | 新玩意 泫的 2023 年终总结 小米14Pro刷机及Magisk流程 长达一个月的看房后,我想和你聊点租房的事 关于我组了一台黑苹果 泫的 2022 年终总结 毕业后在另一个世界的半年 2020 我更新了哪些电子设备? 深度体验后,聊聊小米电纸书 Pro 折腾实验室多路由器互通访问 泫的 2020 年终总结
没想到我这小博客也有人刷流量
2025-12-01 · via 泫言

事情的起因是前几天收到了七牛云的额度不足告警,发现对象存储的 CDN 流量消耗不对劲,于是展开了排查。

您的账号当前可用额度 2.71 元,低于您设置的阈值 3.00 元,可能即将欠费,请您及时充值避免停服。

奇怪的流量变化

虽然我的博客《泫言》从 2017 年运行至今,还算稳定,但毕竟不是大神,访问量不大,一般不会有竞争对手或者恶意攻击来搞我。根据以往经验,对象存储充值 10 元能用很久,但距上次充值不久就收到额度提醒,这引起了我的警觉。

遇到问题第一步当然是去查七牛云的 CDN 监控,一眼看到从 11 月 5 日开始不对劲,正常情况下每日 CDN 流量不超过 50MB,但当天骤增至 734MB,后续几天都接近 1GB。

qiniu-cdn.png

至此基本可排除恶意攻击,恶意攻击不会使用每天都固定刷 1G 流量这样“温和”的举措。

以七牛云为例,CDN 下行流量价格为 0.2046 元/GB,按每日 1GB 计算,一年费用约 74.679 元。虽然这钱不多,但是都被脚本和机器消耗完也不太爽。

排查流量来源

又快半年没有更新博客了,按理不应有大量正常用户访问。查看博客底部的访问统计,人数仍在 10 万左右。按小时的流量统计显示,记录分布非常均匀规律,不符合正常用户访问特征。

随后检查了谷歌分析(Google Analytics)数据,11月5日和11月6日虽有短暂用户量波动,但很快恢复正常,因此流量来源应该不是真实用户。

google-analytics.png

接下来要进一步实锤这个判断,我在 CDN 的「统计分析」和「日志分析」中发现,超过 94% 的流量来自江苏的 IP。按不同 IP 的流量消耗排序,没有单个 IP 占用过多流量。最近 7 天流量消耗前几的 IP 归属地如下:

  • 中国江西南昌 | 联通 62.4826 MB
  • 中国上海上海 | 电信 45.1876 MB
  • 中国江苏徐州 | 电信 30.1108 MB
  • 中国江苏苏州 | 电信 27.6015 MB

由于流量并非由少数 IP 主导,无法通过 IP 黑名单屏蔽特定发起方。

分析请求特征

查看请求文件次数,由于《泫言》首页有 4 张图片,多数请求都只会访问首页,所以流量大头都集中在这几个图片上,情况很正常。接下来分析了最多的 Referer 和 User-Agent 分布。

1
2
3
4
5
请求里面占 90% 以上的 Referer 都是空的
-

请求里面占 90% 以上的 User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3

这个数据就比较诡异了,占据大头的 Referer 和 User-Agent 都不正常。

  • Chrome/58.0.3029.110 release 发布于 2017 年 5 月 9 日,版本非常陈旧。
  • 正常浏览器直接打开图片,会携带对应 Referer,也实锤了这些访问不是真实用户的行为。

临时解决

现在要临时解决问题,不想让这类请求继续消耗我的流量,我给 CDN 增加了防盗链设置。规则是仅放行来源为 *.cugxuan.cn 的请求,如果 Referer 为空则直接拒绝

1
2
3
4
5
6
7
8
9
10
11
12
13
不带 referer 不能正常请求
$ curl --location 'https://image.cugxuan.cn/avater.jpg'
<html>
<head><title>403 Forbidden</title></head>
<body>
<center><h1>403 Forbidden</h1></center>
<hr><center>openresty</center>
</body>
</html>

带了 referer 的就能正常返回
$ curl --location 'https://image.cugxuan.cn/avater.jpg' --header 'referer: https://blog.cugxuan.cn'

修改之后 403 状态码的请求显著增加,该错误成为 CDN 统计中占比最高的类型,同样流量消耗也回归了正常水平。

http-code.png

结果与猜测

尽管通过临时屏蔽解决了问题,但也带来了不便。例如,在无痕模式下直接打开我的头像会显示 403,而在博客内右键打开图片则正常展示。

理论上本问题不会是搜索引擎以及大厂 AI 的产物,因为博客运行多年,很早就被 Google 和百度等搜索引擎收录,从未出现类似流量消耗。按照现有认知猜测了以下可能,也欢迎有类似经历的朋友与我交流:

  1. 小作坊的产物,如人工或 AI 编写的程序定期抓取。
  2. 某些 RSS 工具更新策略不当,缓存逻辑有问题导致重复拉取。