网站防DDOS攻击思路

最近给一个客户搭的网站,受到DDOS攻击,因为源码是在网上找的,代码质量不忍直视,一个首页就有n条sql查询。虽然服务器配置用了8核8G内存,然后也加了阿里云全站加速(过滤了一些流量),但网站还是一打就死。

客户反馈过来,说是网站打不开,于是我马上登服务器查看,mysql的进程直接卡死了,于是重启服务器,然后优化mysql的参数(mysql默认安装的配置不是最优的,可以根据服务器配置优化内存,线程等参数)。

没几分钟网站又卡死了,于是登录阿里云,查看访问情况,乖乖,直接300G流量打过来,尽管回源流量只有十分之一,我知道优化代码已经无济于事了(也是懒得优化)。

网站防DDOS攻击思路

客户那边急得不行,于是我查了一下阿里云的防DDOS服务,不看不知道,一看吓一跳。

网站防DDOS攻击思路

最便宜的保险版,20200一个月,想都不敢想一个小破站,总共都只花了十分之一的费用,让花这么多钱,那还是关了吧。上高防服务器,看这流量可能也扛不住,能抗住的服务器那费用也是一样的了。

客户还想着要挣扎一下,看有什么办法?我提议换个域名(因为用的是全站加速(类似cdn),服务器ip是隐藏的,ip不用换)。但是我也和客户说明了,如果破坏者知道了新域名,那也是白搞。

就在一筹莫展之际,我看到全站加速,数据面板有一个筛选项(区域选择),于是试着筛选一下中国的流量。

网站防DDOS攻击思路

流量少了十分之一(幸运的是当时没注意到回源流量还是一样的【笑哭】,如果发现了还是会放弃这个方案),因为网站用户主要是国内的用户,心想如果能限制访问区域,那这就可以过滤掉大部分的流量,那也是好的。刚好全站加速里的WAF里有一个限制访问区域功能。于是开通WAF,添加好限制访问区域策略。

网站防DDOS攻击思路
区域防护策略

第一次出于爱国情怀,将香港、澳门、台湾排除在封禁区域(其实是没注意到)。配置好这一切之后,我竟然有点期待破坏者快点再来打一下(哈哈,受虐狂)。

网站防DDOS攻击思路

第二天,果然又来搞事情了,上午的拦截效果不错,网站只有一小会儿波动,但是晚上一波拦截效果就不太理想了,网站停了10多分钟,于是再次查看拦截策略,原来台湾,香港,澳门是算在中国境内的(阿里云这些小细节还是到位的)。尽管有民族大义,但是破坏分子就是利用了这点,没办法只能把他们三也加到封禁区域。

网站防DDOS攻击思路

在更新了拦截策略后,第二天,他们又攻击了一波,几乎全部拦截。

网站防DDOS攻击思路

攻击者见流量都被拦截就放弃了,过了几天还试探性地测试了一下,也是几乎100%拦截。至此本次“攻防战”以守方巧妙利用攻击方弱点(攻击者一般也是中国公民,不太敢用内地ip攻击,又或者内地ip攻击费用较高)防御获胜。

网站防DDOS攻击思路

总结

通过本次防御经历,面对DDOS攻击是有很多办法的。

1.优化代码逻辑(像本次的网站,很多效率不高的sql请求),节约服务器资源,增强抗打击能力。

2.优化服务器相关软件的配置,榨干服务器性能。

3.借用三方防护服务,例如流量清洗,高防服务器(简单粗暴,成本较高)。

4.巧妙分析具体情况,例如依据本例中的服务对象所在地,限制访问区域。

5.限制访问频率(可能误杀),本次没有实际使用,但也在使用计划中,阿里云的WAF好像也有这个功能。

6.其实本次还试用了通过访问日志来统计请求ip,将访问量大的ip封禁(因为攻击者一般是通过购买攻击流量来攻击,所以攻击IP会有很多重复请求,这要就可以把这些ip封禁在黑名单里)。

7.同6,不过拦截的是请求头,可以将请求次数较多的浏览器Agent添到黑名单。又或者根据本次案例站点的特征,提供的服务主要是手机端的客户,那么就可以将不是手机端的请求拦截。

参考资料

哈哈,这是好像是本站第一篇没有参考文献的技术文章,都是根据自身经历水的一篇技术文章。本站没有加上述防护,也没什么商业价值,配置也很差,一打就死,求大佬放过,不要进行攻击测试。

原创文章,作者:Zeyu,如若转载,请注明出处:https://jinzhijun.cn/develop/1229

(0)
ZeyuZeyu
上一篇 2022年8月4日 下午9:21
下一篇 2023年3月5日 下午4:37

相关推荐

  • 打破壁垒:使用 PHP 和 Nginx 在本地开发 OpenAI API

    最近在开发一个OpenAI的产品,但是由于众所周知的原因, OpenAI API 有 IP 限制,使得在本地开发变得困难。开始我的想法是,把代码放服务器上去跑,可是这样一来,要修改…

    2023年4月10日
    4.5K
  • 广东省互联网医院接入——远程确认

    今天公司互联网医院接入终于走到了远程确认这一步了,因为一直是摸着石头过河,中间做了不少弯路,这里做个记录,希望也在摸索的同行如果看到能有一个参考。当然写这个的时候,还只是远程演示了…

    技术开发 2021年8月18日
    1.3K
  • 香港阿里云Windows服务器省钱方法

    最近把因为香港阿里云服务器要续费了,因为之前购买的时候服务器上还部署了其他的java系统,当时对Linux操作不熟,所以操作系统选的是Windows的系统,但是阿里云香港的服务器需…

    2020年11月11日
    1.6K
  • 常见的Web攻击手段(转)

    午饭期间,读者小李与我闲聊,谈到上周去面试的过程。经典的高开低走,面试初期答得还可以,但是到后面却不尽人意。其中有个面试问题引起了我的注意,面试官当时问小李:你知道有哪几种常见的&…

    2021年10月10日
    1.3K
  • 扩充合并阿里图标库

    最近在开发系统时遇到一个问题,因为前端用的是网上的前端模板,该前端引入的是他自己在阿里巴巴图标库文件。但是当我想用其他图标时就出现问题了,这个图标库里没有我想用的图标,或者用的图标…

    2022年5月6日
    1.9K
  • PHP代码审计一条龙思路(转)

    00×0 前言 最近也是边挖src边审计代码,总结下最近的php代码审计的一些思路,我一般按照顺序往下做,限于能力水平,可能会有不对或者欠缺的地方,希望各位师傅能够指导。 00×1…

    2022年5月31日
    1.4K
  • 群晖docker 安装gitlab

    一、安装 1.1 在套件中先安装Docker套件。 1.2 在docker中,注册页签下,搜索:gitlab,双击下载,选latest 1.3下载完成后,在映像页签下,选中gitl…

    2022年3月13日
    3.4K
  • 搭建以太坊轻节点

    1. 安装 go 语言 安装 go 主要是为了去编译 go-ethereum 源码 查看go版本 2. 安装 git 安装 git 主要是为了拉取 go-ethereum 源码 查…

    2020年11月30日
    5.1K
  • 获取宝塔搭建的Ecshop的源码和数据库的方法

    最近在虚拟机里搭了一个kali2022,想试试kali的一些工具的功能,于是想到最近在网上的源码站下载了一套ecshop二开的商城,就搭建在另一个虚拟机上,想着看自己能否攻破下来。…

    2022年5月29日
    2.2K
  • JS定时触发—–新订单提醒展示效果并提示音效(转)

    展示效果 php代码 版权声明:本文为lixing1359199697原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链…

    前端 2022年6月28日
    1.7K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注