跳至主要内容

我的网站被攻击了,被干掉了 120G 流量,还在持续攻击中... 原创 悟空聊架构

    背景    

 前几天,我正在用 Typora 写笔记时,发现图片无法自动上传到七牛云上了,然后登录到七牛云管理后台,发现已经欠费 20 多块钱了,CDN服务因欠费停了,导致我的网站 passjava.cn 上的  所有图片都无法访问  。

 很奇怪,我用的都是免费的 10G 流量,很少会出现欠费的情况,怀疑是网站被攻击了。于是检查了最近网站的访问情况,吓我一跳,7天时间被访问了 123G 流量,  14 万个独立 IP  ,可以肯定的是被肉鸡服务器攻击了。 

 


 

 


 今天又看了下流量,发现还在攻击。

 数据如下:

 07-30 22:00~08-06 10:00   持续攻击了 61 万次,120G CDN 流量,难受 -_-

 08-07 17:00~08-11 17:00   持续攻击了 41 万次,全部报403 错误,也没有造成 CDN 流量。因为在 08-08 18:00 开启了防盗链,所以攻击失败,舒服^_^

 


    处理过程    

    初步排查    

 查看了访问日志,就是一大堆肉鸡服务器不断地访问网站的 5 张图片,造成了大量 CDN 流量,因为按量付费,所以超了很多钱。如下图所示,访问日志中可以看到很多不同的 IP,持续访问网站的图片。

 


    处理方案    

 迅速建了个工单,找七牛云的工程师看看怎么整。

 工程师回复如下:

 


  “  

  方案  :在 控制台 - cdn - 统计分析 - 日志分析 中看 top访问情况,比如高频访问的URL和客户端IP。

 根据top访问数据将非预期的来源IP、ua等拉黑处理下。

 然后看了下高频访问的 ip,都是随机的,没什么规律,应该就是大量肉鸡服务器攻击的。所以用黑名单的方式是没办法限制这些肉鸡服务器的 IP 的,只能另寻方案。

 工程师回复可以采取防盗链的方式。

    防盗链    

 防盗链方案:

   1:referer防盗链  : 只有携带了相应 referer 请求头的 http请求才能访问资源,但是对于技术来说,referer都是可以伪造的,存在一定的风险。

   2:时间戳防盗链  ,url带着e和token参数访问,e为过期时间,但是只要捕获到了url就可以访问资源了,只适用于访问xx次的场景。

   3:回源鉴权  ,这个你们可以尝试下,每次访问cdn图片时,会携带你们自己定义的访问参数去你们自己的服务器上鉴权,只有你们服务器鉴权通过,返回 httpcode=200 ,才会将图片资源给用户访问,否则无法返回图片。

   4:IP黑白名单  ,这个适合某一个网段内的ip访问资源,不适合官网使用,只有在 ip 白名单中的用户才可以访问你们的图片。

   5:UA黑白名单  ,通过 User-Agent 字段的值来允许或者阻止特定用户访加速域名。

 目前只有方案 1 比较合适。

  “  

  方案 1  :referer防盗链: 只有携带了相应 referer 请求头的 http请求才能访问资源,但是对于技术来说,referer都是可以伪造的,存在一定的风险。

 于是按照操作开启了 referer 防盗链。如下图所示,开启了白名单,并且不允许空 Referer。

 

  

  选择“否”,这样的话,只有携带了相应 referer 请求头的 http请求才能访问资源。  

 简单来说,就是我把网站中的一张图片的链接,直接 copy 到浏览器的地址栏中然后回车,是访问不到的,会报 403 Forbidden 的错误。

 我检查了下,攻击我的网站的方式确实是没有携带 referer 请求头的 http 请求。如下图所示,Top 1 的请求中的 Referer 为 “-”,表示没有携带 referer。

 

 选择不允许空 Referer 后,就可以拦截这种不带 Referer 的请求了。

    带来的麻烦    

 设置了不允许空 Referer 后,我发现在 Typora 工具中的添加的网站图片无法加载了,因为 Typora 在访问图片时没有携带 Referer 去访问网站图片。

 然后通过 AI 找到了一种解决方案,原理如下图所示。

 

 

    Nginx 配置    

 将本地 8888 端口的请求添加 Referer 后,再访问 CDN 域名。

 

    Proxifier    

 拦截 typora 中访问 cdn 图片的请求,并将请求发送给本地的 8888 端口。

 

    进程劫持  

 

    总结    

 1)7 天内我的网站 passjava.cn 被肉鸡刷掉 120 G CDN 流量,七牛云直接欠费 20 多元。

 2)开启 referer 防盗链后,攻击流量瞬间 403,但 Typora 里的图片也挂了。

 3)用 Nginx+Proxifier 给本地请求加 referer,既挡住攻击又让笔记图片正常显示。

评论

此博客中的热门博文

不花一分钱,用 Cloudflare Warp 免费实现科学上网 原创 W不懂安全

   在如今网络环境越来越复杂的情况下,很多人开始寻找安全、可靠、免费的科学上网方式。但动辄买 VPS、配置节点、折腾端口,对大多数人来说太麻烦。      其实你知道吗? Cloudflare 推出的      WARP       工具,只需要几步,就能让你       免费访问 Google、YouTube、ChatGPT 等国外网站       ,而且不需要任何技术背景、完全免费、跨平台支持(手机 +电脑都能用)!      如果你是学生党 / 打工人,想要上 Google 查资料、用 ChatGPT 学习、看看油管上的教程,但又不懂 VP恩、不想花钱买魔法……  

程序员的投资武器库:6 个 GitHub 顶级开源投资分析工具盘点

1. Microsoft Qlib — 微软出品的 AI 量化投资平台 🔗 GitHub: https://github.com/microsoft/qlib ⭐ 37,960 Stars | 🍴 5,894 Forks | 📄 MIT License 微软研究院出品的重量级项目。Qlib 定位为「AI 驱动的量化投资平台」,目标是用 AI 技术赋能量化研究的全流程——从探索想法到生产部署。 核心亮点: 支持多种 ML 建模范式:监督学习、市场动态建模、强化学习 内置高质量金融数据集和预处理管道 集成微软自研的 RD-Agent,可自动化研发流程 完善的文档和活跃的社区维护 适合人群: 有 Python 和机器学习基础的量化研究者,想用 AI 做系统化投资研究的开发者。 2. OpenBB — 开源版彭博终端 🔗 GitHub: https://github.com/OpenBB-finance/OpenBB ⭐ 62,276 Stars | 🍴 6,072 Forks 本榜单 Star 数最高的项目。OpenBB 的野心是做「开源版彭博终端」,为分析师、量化交易员和 AI Agent 提供统一的金融数据平台。 核心亮点: 聚合股票、期权、固定收益、经济数据等多类数据源 提供 Python SDK 和 REST API,方便集成 支持 AI Agent 直接调用,适配 LLM 时代的工作流 活跃的开发团队,持续更新中 适合人群: 需要一站式金融数据接口的开发者,想搭建自己投资分析系统的个人投资者。 3. yfinance — 最流行的雅虎财经数据接口 🔗 GitHub: https://github.com/ranaroussi/yfinance ⭐ 21,826 Stars | 🍴 3,104 Forks | 📄 Apache 2.0 如果你只想快速获取股票数据,yfinance 是最简单的选择。一行代码就能拉取历史行情、财务报表、分红记录等数据。 核心亮点: 极简 API:yf.download("AAPL") 即可获取苹果股票数据 支持批量下载、多线程加速 覆盖全球主要市场的股票、ETF、基金数据 与 Pandas 无缝集成,数据分析一步到位 适合人群: 所有需要金融市场数据的 Python 开发者,量化入门的第一个工具。...

详解 Google 账号与 Google Play 换区,看完你就明白了 原创 海外社媒ACC

               现在很多兄弟虽然解决了 Google 账号注册问题,但是对于 Google 账号的了解知之甚少。比如,你知道 Google 账号和 Google Play 的地区可以设置不一致吗?Google 账号多久未使用会被注销吗?如何安全有效地更改账号和商店地区等等疑问。