我应该使用睡眠()还是直接拒绝它们
我正在实现一个延迟系统,这样我认为滥用的任何IP都会自动通过睡眠()获得递增的延迟。
我的问题是,如果攻击者在延迟的同时不断打开新实例,这是否会导致增加的CPU使用率,从而以任何方式终止我的站点?或者,lear()命令使用最少的CPU/内存,并且不会对一个小脚本造成太大负担。我不想直截了当地否认他们,因为我不希望他们以显而易见的方式知道这一限制,但我愿意听听为什么我应该这样做。 [请不要讨论为什么我认为一个IP在一个小网站上滥用,原因如下:我最近构建了一个脚本,Curl‘s a Page&;向用户返回信息,我注意到有几个IP在向我愚蠢的小脚本发送垃圾邮件。太频繁的冰壶运动有时会使我的结果无法从服务器上获得,合法用户也会被毁掉他们的结果。]解决方案
休眠不使用接受调用的进程尚未使用的任何CPU或内存。
实现Slear()将面临的问题是,当攻击者在周围等待您的睡眠超时时,您最终会用完文件描述符,然后您的站点将显示为任何其他试图连接的人。
这是一个典型的DDoS场景--攻击者实际上并不试图侵入您的计算机(他们也可能尝试这样做,但这是不同的Storry),相反,他们试图通过耗尽您拥有的所有资源来损害您的站点,这些资源包括带宽、文件描述符、用于处理的线程等--当您的一种资源耗尽时,您的站点看起来像是关闭了,尽管您的服务器并没有真正关闭。
这里唯一的真正防御措施是要么不接受呼叫,要么使用过滤呼叫的动态防火墙配置--或者使用路由器/防火墙盒来执行相同的操作,但不使用服务器。
相关文章