我在我的网站上遇到了白痴,只是被滥用。 我可以禁止他们的帐户,然后把xxx.xxx.xxx.xxx中的拒绝置于htaccess文件中。写入htaccess文件
我还有什么可以阻止他们回来吗?
这个问题的主要原因是,什么是在我的管理面板中作为选项将拒绝写入htaccess的最佳方式是什么?
感谢
我在我的网站上遇到了白痴,只是被滥用。 我可以禁止他们的帐户,然后把xxx.xxx.xxx.xxx中的拒绝置于htaccess文件中。写入htaccess文件
我还有什么可以阻止他们回来吗?
这个问题的主要原因是,什么是在我的管理面板中作为选项将拒绝写入htaccess的最佳方式是什么?
感谢
或者,只是加载IP列表到一个数据库,并检查是否存在于您的禁令名单$_SERVER['REMOTE_ADDR']
,然后让PHP只是呼应了“走开”的消息。
正如Steven指出的那样,通过使用ip2long()
将IP转换为数字,然后使用数字搜索数据库,您的性能也会更好,因为这比使用字符串搜索更有效率。
您可以在访问您网站的任何部分时执行IP检查。 在你的管理面板中,你在数据库中存储了禁止的IP地址列表?考虑到这一点,这就是一个解决方案。
checkBannedIP();
function checkBannedIP() {
$ipAddresses = getBannnedIPs(); // Array('44.55.66.898', '465.22.78.365');
if(in_array($_SERVER['REMOTE_ADDR'], $ipAdresses)) {
header("Location: www.google.com");
}
}
您所需要做的就是创建getBannedIPs()函数,它是数据库中IP的列表。
因此,只需在共享的.php文件中有该函数,并在网站上的每个页面顶部调用checkBannedIP()。这意味着它会将禁止的用户IP重定向到google.com。如果人们对重定向感到沮丧,那么在网站上乱搞的人更可能会停下来。
这将基本上选择所有禁止的IP每次有人访问该网站......这将相当于一个巨大的CPU负载。 – 2010-07-28 21:29:38
这取决于他想存储的IP数量。如果数量相当大,那么缓存技术或阅读文件就会发挥作用。 – 2010-07-28 21:37:53
对不起保罗,你的解决方案还有1个问题。它只向浏览器发送重定向头,它不会终止脚本。所以如果浏览器忽略重定向,他们仍然可以做任何他们想要的。所以你应该在header()语句之后放置一个“die()”语句。 – user400850 2010-07-28 22:00:34
这是一个解决方案,应该适合你的情况非常好。如果你打算收集大量的禁令(比如在高度被贩卖的网站上自动禁止),你可能会发现使用'ip2long()'和'long2ip()'而不是完全达到满的价值在数据库上进行文本搜索。 – 2010-07-28 21:18:11