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


- openssl_digest vs hash vs hash_hmac?盐与盐的区别HMAC? 2022-01-01
- 如何从数据库中获取数据以在 laravel 中查看页面? 2022-01-01
- 如何使用 Google API 在团队云端硬盘中创建文件夹? 2022-01-01
- PHP - if 语句中的倒序 2021-01-01
- 覆盖 Magento 社区模块控制器的问题 2022-01-01
- 使用 GD 和 libjpeg 支持编译 PHP 2022-01-01
- Laravel 5:Model.php 中的 MassAssignmentException 2021-01-01
- PHP foreach() 与数组中的数组? 2022-01-01
- 如何在 Symfony2 中正确使用 webSockets 2021-01-01
- Oracle 即时客户端 DYLD_LIBRARY_PATH 错误 2022-01-01