我想从我的网站上禁止某人。
到目前为止,这是我尝试的内容:
如果拥有包含“188.91.1.x”的IP的人进入我的网站,我会die()
该网站。
缓存
我试图禁止的用户绕过了我已经采取的上述步骤。
我的网站上有公共聊天室,我想让他远离它。
你们怎么会禁止这个人?
是否可以获取特定于用户机器甚至浏览器的任何其他唯一ID?
Ps:
我无法通过登录名禁止(尝试过,他不断创建新帐户)
我不能列入白名单,原因与上述相同。
编辑:
我找到了这段代码,并且在使用HideMyAss.com
进行测试时有效<?
if( @fsockopen( $_SERVER['REMOTE_ADDR'], 80, $errstr, $errno, 1 ) )
{
die("I'm not letting you in");
}
else
{
?>
Hello normal user, thanks for not trying to use a proxy
<?
}
?>
任何可能出现问题的东西(即使只是在生产中试用)?
嗯,fsockopen方式似乎只适用于基于网络的代理(这是完美的,因为我相信他正在使用它)。我将首先计算我获得的访问者数量,这会触发我在帖子中粘贴的fsockopen代码,看看是否适合我作为禁止该人成功的下一步。
答案 0 :(得分:1)
如果他正在使用代理,则无法通过使用IP来阻止他。
你可以尝试设置一个cookie,然后根据它来阻止访问,但即使这样也很容易被规避。
答案 1 :(得分:1)
完全阻止他是不可能的,但你可以让他更加努力。
<强>缓存强> 您可以注意在禁止的用户计算机上存储cookie。只要用户不删除他的cookie或更改浏览器,您就可以禁用他的新ips。
<强>注册强> 您可以要求新用户通过电子邮件注册和激活帐户。这将使任何被禁用的用户减速,因为他们制作的每个帐户,他们都需要一个新的电子邮件。
自动禁止 您可以为自己添加一个禁止按钮,以便轻松禁止人们。 您可以添加投票禁令功能,以便其他成员可以暂时禁止他人。
答案 2 :(得分:0)
你不能..你唯一能做的就是将他使用的IP地址添加到你的“禁令”中。当他改变他的IP地址时,没有办法禁止用户(实际上他正在使用代理ip>
答案 3 :(得分:0)
没有办法完全阻止某人,我过去曾遇到同样的问题。
我以前做的最好的方法是使用htaccess文件和阻塞子网,如下所示:
<Limit GET POST>
order allow,deny
allow from all
deny from 1.2.3.4
deny from 2.0.
</Limit>
来源:Using the .htaccess File to Block IP Access
另一种方法是仅使用htaccess创建白名单以及下面的示例
AuthName "CIRC Under Maintenance"
AuthType Basic
<Limit GET POST>
order deny,allow
deny from all
allow from 216.249.119.
allow from 216.249.123.120
</Limit>
来源:.htaccess allow/deny rules for subnet
有关.htacces文件的更多信息: .htaccess - Wikipedia
另一个解决方案是检查此处找到的每个设备的唯一ID:Unique ID for a device with PHP,如Adam在评论中提到的
答案 4 :(得分:0)
有时解决这些问题的唯一方法是手动批准用户。就像RainFromHeaven所说,白名单不是黑名单。