从网站上禁止某人的方法

时间:2013-10-01 09:57:52

标签: php

我想从我的网站上禁止某人。

到目前为止,这是我尝试的内容:

  • 如果拥有包含“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代码,看看是否适合我作为禁止该人成功的下一步。

5 个答案:

答案 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所说,白名单不是黑名单。