首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测和禁止使用php攻击ips

如何检测和禁止使用php攻击ips
EN

Server Fault用户
提问于 2011-11-05 12:09:00
回答 1查看 146关注 0票数 1

我有一个网站主机,不允许编辑iptables。从那时起,我就有轻微的(大约300个请求/秒) DoS攻击(通常不是分布式的)。我决定编写一个PHP脚本来阻止那些ips。首先,我试图将最后10秒的所有请求存储在数据库中,并查找每个请求的滥用地址。但是我很快意识到,这样我必须对每个DoS请求至少执行一个数据库请求,这是不好的。然后,我对这种方法进行了如下优化:

代码语言:javascript
复制
Read 'deny.txt' with blocked ip's
If it contains request ip, then die()
--- at this point we have filtered out all known attacking ips ---
store requesting ip in database
clean all requests older than 10 secs
count requests from this ip, if it is greater than threshold, add it to 'deny.txt'

这样,新的攻击ip只会向数据库发出Threshold请求,然后被阻止。

因此,问题是,这种方法是否具有最佳性能?有更好的方法来完成这个任务吗?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2011-11-05 12:39:33

如果请求可以以任何方式访问您的服务器(即使您可以编辑iptables),它仍然在消耗带宽。如果您的服务器每秒可以处理300个请求,那么就不用担心了。如果你因带宽而窒息,那么你将不得不在上游处理它。如果您无法在服务器上编辑iptable,您可能已经共享了主机,因此您的主机很可能会看到攻击,并希望在无法控制之前将其限制在上游。

票数 3
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/328079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档