我使用的代码从,工作完美,但我想阻止整个网站的访问,而不仅仅是一个页面,有任何可用的方法?
使用Ubuntu,php7,mod-security2.
代码:
<Locationmatch "/wp-login.php">
# Setup brute force detection.
# React if block flag has been set.
SecRule user:bf_block "@gt 0" "deny,status:401,log,id:5000135,msg:'ip address blocked for 5
我有一个网站主机,不允许编辑iptables。从那时起,我就有轻微的(大约300个请求/秒) DoS攻击(通常不是分布式的)。我决定编写一个PHP脚本来阻止那些ips。首先,我试图将最后10秒的所有请求存储在数据库中,并查找每个请求的滥用地址。但是我很快意识到,这样我必须对每个DoS请求至少执行一个数据库请求,这是不好的。然后,我对这种方法进行了如下优化:
Read 'deny.txt' with blocked ip's
If it contains request ip, then die()
--- at this point we have filtered o
在我的一个网站上,我有一个简单的php/mysql函数,可以用下面的代码查看我的数据库中是否有ip地址:
$ip = $_SERVER['REMOTE_ADDR'];
$user = mysql_query("SELECT * FROM users WHERE ip = '$ip' ");
if(mysql_num_rows($user) == 0){
echo 'IP is not banned';
}
昨天这个文件有大约1,700,000次点击(页面浏览量),我在一个共享主机上,在未来几天这个文件可能会被加载大约3,000,0