如何防御CC攻击?
1,服务器的纵向扩展和横向扩展
在资金允许的情况下,这是最简单的方法。本质上,这种方法并不是针对CC攻击,而是提高了服务处理并发的能力,但确实提高了对CC攻击的承受能力。纵向扩展:指增加每台服务器的硬件能力,如升级CPU、增加内存、升级SSD等。横向扩展:指通过增加提供服务的服务器来增加承载能力。以上的扩展和扩充都可以在服务的各个层面进行,包括:应用服务器、数据库服务器、缓存服务器。
2.数据缓存
对于服务中* * *程度较高的数据,可以被多个用户重用,也可以被单个用户多次重用,一旦从数据库中检索或计算,最好放在缓存中,后续的请求可以直接从缓存中获取数据,减轻数据库的检索压力和应用服务器的计算压力,并可以快速返回结果和释放进程,从而缓解服务器的内存压力。需要注意的是,缓存不应该是文件的形式,可以使用redis、mem-cached等基于内存的nosql缓存服务,这些服务与应用服务器分开,单独部署在局域网中。局域网的网络IO肯定是高于磁盘IO的。为了不使阿兰成为瓶颈,千兆网络也是必要的。
3.静态页面
和数据缓存一样,页面数据本质上属于数据。常见的方法是生成静态html页面文件。利用客户端浏览器的缓存功能或者服务器的缓存服务和CDN节点的缓存服务,可以减轻服务器的数据检索和计算压力,快速响应结果,释放连接过程。
4.用户级呼叫频率限制
无论服务是否登录,都可以基于会话为客户端分配唯一的标识ID,服务器可以将sid存储在缓存中。当客户端请求服务时,如果没有SID,服务器会快速分配一个并返回。如果可能的话,这个请求中不能返回任何数据,或者可以将分配的SID从业务服务中分离出来。当客户端使用合法的SID请求时,可以根据SID限制客户端的频率。对于非法SID的请求,直接拒绝服务。与基于IP的频率限制相比,基于SID的频率限制更加精确可控,可以最大程度避免误杀。
5.IP限制
最后,IP限制仍然可以与上述规则一起使用,但可以预先放置在JCb层的防火墙或负载均衡器上,提高限制的阈值,防止恶意访问渗透到应用服务器,对应用服务器造成压力。