记录一次网站被刷请求次数统计
前言
今天突然收到多吉云的通知,说请求数激增,我的个人生活博客,https://my.404.pub两个小时内cdn请求数量达到两百多万次:
着实离谱,怕不是又惹了何方神圣。
看到后我赶紧上多吉云后台登录,做了一下补救,好在流量并没有消耗很多,只是请求数被刷了两百多万次。
于是赶紧去限制了一下请求的访问限制,防止被一直刷请求次数。
但是,单单这样限制也是会被一直消耗请求次数,不能从根本上解决问题,于是我等时间到了后,去下载了多吉云的日志文件,打算统计一下刷的ip地址然后将它们屏蔽掉。
下载日志文件后,我发现有五十多兆...人为去统计一个一个ip肯定是不现实的...
统计每个ip访问次数
人为统计不现实,于是我想到了用python,对这个文件的数据进行统计:
首先看看文件里面的数据格式,文件 内容太多,这里就列举几条数据作为展示:
这样一大串数据摆在面前,人为的话...就算了...
然后直接开始编写代码,大概思路是通过读取文件内容,统计提取出每个ip出现的次数,然后用降序的方式写入新的result.txt文件,便于我查看哪些ip是频繁发起请求的。
实现的python代码如下:
逻辑上还是比较简单的实现逻辑的,然后通过这样操作,最后得到了result.txt让我一览所有访问ip的次数,然后就可以愉快地屏蔽了。
这些都是些高频访问的ip,我会去查一下它们地址,发现都是海外请求,果断直接给屏蔽了。
最后
最后,其实这次被刷,虽然量并不是很大,但是也给我们敲响了警钟,被攻击,被刷的概率还是有的,所以还是要做好万全的准备,包括但不限于做好防护的措施,比如限制最高访问频率等策略,减少自己的损失...
正文完
评论区