如何实现有效的防CC攻击?HTTP Flood 俗称CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,前身名为Fatboy攻击,也是一种常见的网站攻击方法,是针对 Web 服务在第七层协议发起的攻击。
对于防CC攻击必须采用多种方法,而这些方法本质上也是在提高服务器的并发能力。
1、服务器垂直扩展和水平扩容
资金允许的情况下,这是最简单的一种方法,本质上讲,这个方法并不是针对CC攻击的,而是提升服务本身处理并发的能力,但确实提升了防CC攻击的能力。垂直扩展:是指增加每台服务器的硬件能力,如升级CPU、增加内存、升级SSD固态硬盘等。水平扩容:是指通过增加提供服务的服务器来提升承载力。上述扩展和扩容可以在服务的各个层级进行,包括:应用服务器、数据库服务器和缓存服务器等等。
2、数据缓存(内存级别,不要用文件)
对于服务中具备高度共性,多用户可重用,或单用户多次可重用的数据,一旦从数据库中检索出,或通过计算得出后,最好将其放在缓存中,后续请求均可直接从缓存中取得数据,减轻数据库的检索压力和应用服务器的计算压力,并且能够快速返回结果并释放进程,从而也能缓解服务器的内存压力。
3、用户级别的调用频率限制
不管服务是有登陆态还是没登陆态,基于session等方式都可以为客户端分配唯一的识别ID(后称作SID),服务端可以将SID存到缓存中。当客户端请求服务时,如果没有带SID(cookie中或请求参数中等),则由服务端快速分配一个并返回。可以的话,本次请求可以不返回数据,或者将分配SID独立出业务服务。当客户端请求时带了合法SID(即SID能在服务端缓存中匹配到),便可以依据SID对客户端进行频率限制。而对于SID非法的请求,则直接拒绝服务。相比根据IP进行的频率限制,根据SID的频率限制更加精准可控,可最大程度地避免误杀情况。利用Session针对每个IP做页面访问计数器或文件下载计数器,防止用户对某个页面频繁刷新导致数据库频繁读取或频繁下载某个文件而产生大额流量。(文件下载不要直接使用下载地址,才能在服务端代码中做CC攻击的过滤处理)
4、服务器前端加CDN中转
如果资金充裕的话,可以购买高防的盾机,用于隐藏服务器真实IP,域名解析使用CDN的IP,所有解析的子域名都使用CDN的IP地址。此外,服务器上部署的其他域名也不能使用真实IP解析,全部都使用CDN来解析。
另外,防止服务器对外传送信息泄漏IP地址,最常见的情况是,服务器不要使用发送邮件功能,因为邮件头会泄漏服务器的IP地址。如果非要发送邮件,可以通过第三方代理(例如sendcloud)发送,这样对外显示的IP是代理的IP地址。
5、IP限制
最后,IP限制依然可以结合上述规则一起使用,但是可以将其前置至)JCb层的防火墙或负载均衡器上去做,并且可以调大限制的阈值,防止恶意访问穿透到应用服务器上,造成应用服务器压力。可以屏蔽海外IP,去下载最新的国内IP库,禁止海外IP的访问,最终达到防CC攻击的效果。
CC攻击的原理,是指攻击者通过模拟大量用户访问,制造高并发请求,从而消耗掉服务器CPU、带宽等资源,最终导致服务器瘫痪,目标网站或应用无法正常提供服务,其破坏性非常大。但因为CC攻击不像
DDoS攻击可以用硬件防火墙来过滤攻击,对于一般企业用户来说,防护难度很大。简单的说,要能真正防CC攻击,必须使用专业的CC防护;要能低成本防御,那就使用自带防护功能的云主机。除了上面的常见安全手段,大家可以加装安全软件或者配合预防CC攻击的服务使用,这样网站才会更加的安全。
关于墨者安全
墨者安全致力于安全防护、服务器高防、网络高防、ddos防护、cc防护、dns防护、防劫持、高防服务器、高防dns、网站防护等方面的服务,全网第一款指纹识别技术防火墙,自研的WAF指纹识别架构,提供任意CC和
DDoS攻击防御。