我正在为我的网站制作一个 anto-fload 脚本。我不能使用任何处理它的服务,比如fail2ban 等。我关于 $_SERVER['REMOTE_ADDR'] 值的问题。有什么方法可以让这个函数返回一个错误的 IP?我在某处听说这是可能的,我想知道这是怎么发生的,我能做些什么来防止它发生?那是我的脚本:
$ip = $_SERVER['REMOTE_ADDR'];
$query = "SELECT * from `banned_users` WHERE `ip`='".$ip."'";
if(mysql_num_rows(mysql_query($query))!=0)die("you have been banned from the site!");
if(isset($_SESSION['views']) && isset($_SESSION['time']) && $_SESSION['time']>=time()-2)$_SESSION['views']++;
else {
$_SESSION['views']=1;
$_SESSION['time'] = time();
}
if($_SESSION['views']>=15){
$query = "INSERT into `banned_users` values ('',".time().",'".$ip."') ";
mysql_query($query);
die();
}
如您所见,如果用户在 2 秒内刷新超过 15 次,则会禁止他访问该站点。我的另一个问题是关于 15 次操作,它是否物有所值?我应该降低它吗?因为我的主机有带宽限制。
谢谢。