通常发起CC攻击是使用专门的攻击工具,同时模拟成多个用户,向目标网站发起多个请求,一般这些软件为了防止地址被屏蔽,还内置通过代理攻击的功能。可以通过多个代理服务器对目标发起攻击,使封IP的防御方式变的失效。
如果你的网站是使用的是Nginx做的反向代理,那么可以利用Nginx原生的limit_req模块来针对请求进行限制,(ngx_ 模块)
当然,也可以使用tengine的limit_req模块,对官方模块进行了增强(The Tengine Web Server)或者还有一个比较高端的模块:(yaoweibin/nginx_limit_access_module 路 GitHub), 作者是,姚神@大青蛙
CC攻击的防护没那么简单的,伪装手段也是千万变化,据我所知360网站卫士没有你说的那么好的效果,贴篇月光博客文章给你看好了:网站防止CC攻击的方法
节选下内容:
一开始我想使用某某网站卫士来预防攻击,从界面上看,似乎是防止了大量的CC攻击,但登录网站后发现,流量依旧异常,攻击还是依旧,看起来这个网站卫士的效果并没有达到。
从原理上看,基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过一定数目一定频率就会被认为是Connection-Flood。但如果IP的数量足够大,使得单个IP的连接数较少,那么防火墙未必能阻止CC攻击。
不仅如此,我还发现,启用了某某网站卫士之后,反而更容易被CC攻击,因为这个网站卫士并不能过滤掉CC攻击,攻击的IP经过其加速后,更换成为这个网站卫士的IP,在网站服务器端显示的IP都是相同的,导致服务器端无法过滤这些IP。
1、单独或较少的攻击源可以直接deny。
2、大规模的攻击速度快、请求提交频率高,可以通过安全策略现在请求提交的频率。
根据攻击情况灵活掌握,关键在与你对现有资源的理解和运用能力。
在服务器上安装防护软件就可以了,我看到比较多得就是云盾、360网站卫士和安全狗了。我个人使用的是安全狗,安全狗有服务器安全狗和网站安全狗两款软件,两者均有抗cc攻击的功能只是侧重点不同,服务器安全狗更侧重于防御肉鸡式的cc攻击,所以两只狗一起装上后对cc攻击的防护会更为全面。