不是,大哥,咱这小门小户的,别搞我CDN流量啊
分享是最有效的学习方式。
最近遇上事儿了,老猫的小小博客网站【程序员老猫的博客】被人盗刷CDN流量了。开始的时候收到了欠费的短信也没有怎么去重视。虽然说费用没有多少,但是也是一个教训。
博客从最初地搭建到现在确实也经过好几年了,天真地以为确实很长时间了,差不多快四年都没有充钱了,缺个两块钱应该也是正常的,补上就行,然而让人没有想到的是补偿充值之后的一个小时,有显示欠费了。于是就立马引起了我的重视。于是深夜开始进行排查问题。
(期间其实又陆陆续续充值了一些,发现充值之后瞬间就又没有了,前后算了算,虽然痛失30块。)
写博客的初衷
写博客其实也没有想着去盈利,或者说等网站的流量大了想着去接广告,因为也没有指望博客会有很大的流量。事实也没有让我失望,通过百度统计,发现每天也就几个IP。多的时候会有几十个。
那有小伙伴肯定要问了,不赚钱,又没有流量,那写个鸡屎球啊。那么多第三方平台不用,偏偏要用自己搭建的服务器去搞,那不是费时费力费钱。
哎,之所以想要自己用服务器去搭建博客平台主要原因还是一名技术人员最简单而又淳朴地追求,因为感觉自己搞服务器,自己写文章,就会让人觉得这是在经营自己的东西。另外的话,自己搭建博客的话自由度更加高一点,想要搞成什么样子都可以,使用第三方平台的话,总是觉得限制还是比较多的。指不定哪天平台凉了,自己的东西也就没有了(虽然实际情况往往是平台的寿命比自己个人搭建博客的寿命可能更长一些。)
关于老猫个人博客的技术栈其实也换了好几拨,以前用过wordpress,后来又换成了hexo,到后来差不多是20年左右的时候接触到了vue技术,后来又换成比较熟悉的vuepress,一直到现在用的都是vdonig的模版。
起因-草率地部署
最原始的部署方式,就是在阿里云上,通过nginx服务进行搭建,比较简单,端口用的也是默认端口。部署是完成了,但是外围访问的速度是相当慢的,后来排查原因主要是由于有些图片比较大,另外的话,有的还使用到了第三方的一些js,加载的时候也比较慢,当时也没有想到图床啊什么的,后来就想着优化一下,于是用到了腾讯云的CDN进行全站缓存,包括一些图片。
这次CDN流量被刷排查下来也是一张图片所致,当然图片我也没有经过压缩,本身大小差不多是500k了。排查下来两天这个图片一共刷了我89个G的CDN流量。
这个图片访问次数也达到了62.77w次
然后又看了一下主要的请求归属地,所属地主要是来自于山西,山西的那位大哥,真心求放过啊,咱这小门小户的。
其实我一直挺好奇的,为什么要刷我的CDN流量呢?这玩意儿应该算是流量攻击?那为啥要攻击我呢?咱这才多少流量,大胆一点,不会是内部人员为了业绩?(⊙o⊙)…(细思极恐,感觉自己是不是想太多了,老马应该也不差我这30块钱吧。。。)
当然也是出于好奇,于是在网上逛了一下,发现还真有朋友遇到和老猫一样的情况,当然那个比较惨可能,是一家创业型的公司,老猫估计也是个菜鸡运维配置的CDN。他们居然还报警了,至于有没有下文,好像文章里面也没有提及。文章的内容大概是下面这样的。
从上面的文章中,看起来,这是个最近需要关注的事情,另外的话好像和运营商打击PCDN有点关系。具体的细节老猫后续也没有再深入去研究。看完文章,想想可能是误会老马了(有点以小人之心度君子之腹)
反正如果大家和老猫一样,也是个小站长,那么其实也是时候检查一波自己的网站配置了。
采取一些措施,解决流量盗刷
事情呢,已经发生了,30块巨额也回不来了,但是事情么总归也还是需要解决的,如何解决?
查找盗刷流量的IP地址,并且设置黑名单
老猫查看了之前对CDN请求的top100,发现消耗流量比较多的是下面的IP
没错,我要曝光我大哥。从地址上来看一个是江苏、一个是山西大哥。
相关的图片资源进行迁移,并且设置相关防盗链
于是半夜三更开始进行图片迁移,由于老猫其实还用了某云的第三方的图床CDN,于是老猫就把原来的图片迁移到了某云的图床上,并且给这些图片设置了防盗链。
另外的,当前cdn的相关的图片也进行了清除,清除的方式也比较简单,因为是全站缓存的,所以老猫直接登录到了部署的服务中,将相关的图片进行删除,然后重新刷新cdn的缓存,这样再次去访问该图片的时候就是404了,原始图片地址:https://blog.ktdaddy.com/img/ui.png
设置单位时间全站的封顶流量
当然为了防止全局其他资源的cdn流量被刷,于是重新设置用量封顶规则,这个规则相当于是为了不让自己受到损失熔断整个网站具体如下:
老猫也知道自己的小站几斤几两,所以感觉设置这么高的瞬时封顶也就够了。这层也算是最后的防线了。
现在回过头来在想想,小小网站由于目前有CDN图床,现在再做相关的CDN的全站缓存好像意义并不是很大。所以后面还是考虑将全站缓存到CDN这层给干掉,直接服务器+图片图床即可。
一些想法
算是个人的小小损失吧,但是细思极恐,如果当时cdn上面充钱比较多,另外的话,盗刷的也不仅仅这一个资源的话,那么其最终损失就大了。上图中提及的“快科技”就是一个比较好的例子,作为一个资深码农,这件事情上真的是疏忽了,做事情不够严谨,应该自我批评一番。哪怕说是几年前部署的。
当然上面文章中有些疑问也欢迎其他小伙伴能够聊聊,当然还有哪些注意点,老猫这里没有想到的,也欢迎大家可以提出建议。
写到这里也差不多了,相信有很多小伙伴应该会来问老猫当前的博客是如何搭建起来的,用到了哪些东西,在这里,老猫把相关的技术以及资源分享给大家。
技术采用:vuepress,官网地址:https://vuepress.vuejs.org/zh/
博客模版用的是vuepress-theme-vdoing,相关的gitlab地址是:https://github.com/xugaoyi/vuepress-theme-vdoing,
上述博客模版对应的官方教学主站:https://doc.xugaoyi.com/pages/a2f161/
创作不易,当然如果你看到了也欢迎给这位作者github上点个star。
上述有提及某云的图床,其实这里也不卖关子,主要用到的是七牛云。感兴趣的小伙伴可以研究一下。
总结一下
当我们遇到CDN流量盗刷的情况下,我们应该从哪些方面入手去做呢?我们可以按照下面的流程来应对:
立即监测和分析:尽快确定流量被盗刷的模式、时间、来源和去向等信息。通过 CDN 服务提供商提供的监控工具和数据分析,了解异常流量的特征。
暂停服务:在情况未明之前,为避免进一步损失,可以暂时停止相关的 CDN 服务。
通知 CDN 服务提供商:及时向 CDN 服务提供商报告被盗刷的情况,他们通常具有一定的应对机制和经验,能够协助调查和采取措施。
加强安全防护:检查和强化自身的网络安全措施,例如更新密码、加强认证机制、修补可能存在的安全漏洞等。
审查授权和访问控制:检查所有的授权和访问权限设置,确保只有合法的用户和应用能够访问和使用 CDN 服务。
保留证据:保存与流量被盗刷相关的所有数据和记录,以备后续可能的调查和法律行动。
法律手段:如果损失较大,可以考虑通过法律途径来追究盗刷者的责任,维护自身的合法权益。
总之,CDN 流量被盗刷是一个严重的问题,需要及时、果断地采取措施来应对,以减少损失并防止再次发生。
不是,大哥,咱这小门小户的,别搞我CDN流量啊的更多相关文章
- 小程序-图片/文件本地缓存,减少CDN流量消耗
写在前面 小程序网络图片读取: 在读取OSS图片CDN分发时流量大量消耗,导致资金费用增加. 网络图片比较大时,图片加载缓慢. 为了尽量减少上面两个问题,所以对已读的图片进行缓存处理,减少多次访问不必 ...
- iOS之小门道道
1.代理方法不执行 很多时候在你代理方法不执行时,小样,你看看你设置代理了吗?
- 「10.14」小P的2048(模拟)·小P的单调数列(性质,DP)·小P的生成树(乱搞)
A. 小P的2048 模拟.....又没啥可说的,以后要认真打打模拟题了... B. 小P的单调数列 考场$n^2log(n)$的SB思路有人听吗 正解当然不是这样, 事实上我们每次选取的只有一段区间 ...
- 【bzoj5071】[Lydsy十月月赛]小A的数字 乱搞
题目描述 有一串数字 A1,A2...An 每次可以进行如下操作,选择一个数字 i ,将 (Ai-1 , Ai , Ai+1) 变为 (Ai-1 + Ai , -Ai , Ai+1 + Ai) ,特别 ...
- 【小问题】为啥乱搞就不行,golang没安装在系统目录下,导致go get出现"package bytes: directory "/home/ahfu/go/src/bytes" is not using a known version control system"
想在自己的账号下安装golang开发环境,于是这样配置: wget https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz cd /home/ahfu ...
- 【Mac】小技巧:实现ssh服务器别名免密登录
前言 我们平常使用ssh user@host然后输入密码的方式来远程链接一个服务器,但是,如果要管理的服务器太多,记住这些服务器的IP和用户名.密码就是一个复杂的工作.当然,我们可以把这些信息用文档记 ...
- QQ 邀你上线小程序,官方生态能力持续赋能你的小程序
转: QQ 邀你上线小程序,官方生态能力持续赋能你的小程序 你身边总有一些朋友,他们的表情包极其丰富,能时刻应对各种聊天场景. 表情包奇奇怪怪,可可爱爱,非常形象生动体现我们当下的心情,逐渐成为社交平 ...
- 2016年中国微信小程序专题研究报告
2016年12月29日,全球领先的移动互联网第三方数据挖掘和分析机构iiMedia Research(艾媒咨询)权威首发<2016年中国微信小程序专题研究报告>. 报告显示,82.6%手机 ...
- 【腾讯Bugly干货分享】聊一聊微信“小程序”
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57ecdf5ef03abecd43216fd0 Dev Club 是一个交流移动 ...
- 迅雷首席架构师刘智聪:微信小程序的架构与系统设计的几点观感
笔者注:本文来自于迅雷首席工程师刘智聪的个人分享,他毕业于南昌大学化学系,加入迅雷后设计开发了多款迅雷核心产品,凭借“大规模网络流媒体服务关键支撑技术”项目获得2015年国家科学技术进步奖二等奖,同时 ...
随机推荐
- 浅谈C#中取消令牌CancellationTokenSource
基础操作 CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); cancellationTo ...
- 用Python脚本迁移MongoDB数据到金仓-kingbase数据库
1.首先需要明确MongoDB与kingbase的对应关系,collection相当于table,filed相当于字段,根据这个对应关系创建表: 此次迁移的MongoDB里的数据字段是:_id(自动生 ...
- JavaSE 数据类型以及基本转化与包装
目录 数据类型. 1.基本类型(八个) 数值型 整型类型 byte型:1字节 8bit位 第一位是符号位 null short型:2字节 int 型:4字节 long型:8字节 浮点类型 float ...
- 鸿蒙HarmonyOS实战-ArkTS语言基础类库(容器类库)
前言 容器类库是指一组用于存储和管理数据的数据结构和算法.它们提供了各种不同类型的容器,如数组.链表.树.图等,以及相关的操作和功能,如查找.插入.删除.排序等. 容器类库还可以包含其他数据结构和算法 ...
- linux系统下,配置多个tomcat服务
安装jdk时配置的环境变量 export JAVA_HOME=/usr/local/jdk1.8.0_311 export JRE_HOME=$JAVA_HOME/jre export PATH=$P ...
- CM 停用 Parcel 异常
在将Doris集成到CM时,第一次打的包存在问题,想更新下,停用.删除Parcel时出现了问题卡住了,一直显示75%.无奈换了名称和版本,分配.激活,然后又卡在了75%,点开后,发现是同一台机器.其a ...
- Java验证集合空或验证对象空的方法
import java.util.ArrayList; import java.util.List; import java.util.Objects; import org.springframew ...
- 利用.htaccess绑定子域名到子目录
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 利用.htaccess绑定子域名到子目录 日期:2018- ...
- MySql用户与权限控制
MySql用户与权限控制 -- 刷新权限命令 # -- 刷新mysql权限命令 flush privileges; 用户管理 1.查看用户 #查看用户 USE mysql; SELECT host,u ...
- pytest执行_allure报“AttributeError: module 'allure' has no attribute 'severity_level'”
背景: 一个大项目A,需要项目B作为源码,即pycharm的 source_root 问题: 项目B,执行pytest.main([pytest命令]),控制台报错"AttributeErr ...