如何有效地禁止用户访问我的网站?

15

我知道很多脚本可以处理IP屏蔽、IP范围屏蔽等问题。

我正在尝试制作一种尽可能有效地封锁用户的方法。我想到了:

  • IP屏蔽
  • 设置cookie
  • 但是,如果用户使用动态IP并且没有启用cookie,这对他们不会有太大作用。
  • 为来自用户的多个变量(如浏览器、版本和其他信息)创建哈希值,并将它们添加到存储禁止用户名单或此类值的表中。

感谢提供的建议。

7个回答

8

简单来说,你做不到。

有些用户可以阻止接收cookie,甚至使用代理伪造IP地址,你就是无法确保某些用户无法访问你的应用程序。

一个(极端的)选择是强制所有合法用户安装客户端证书并在服务器端进行检查,但正如我所说,这是一个极端的解决方案。我不喜欢为了访问某个站点而安装证书。

我建议你放手一搏;在未来的某个时候,你的恶意用户会感到厌倦,并寻找更有用的事情来做。


1
...然后他会让他的机器人来做那件事;) - Franz
你说的关于证书的事情是正确的,如果某个网站要求我下载证书,我也会持怀疑态度。谢谢你的回答。 - Samuel

3
如果您需要阻止特定用户,则唯一的方法是要求所有用户使用电子邮件进行身份验证 - 他们不需要提供密码 - 只需生成一个随机哈希并将其存储在数据库表中的电子邮件地址上,然后发送一个可点击的URL,其中包含查询中的哈希。然后,当访问URL时,在其中放置一个具有哈希值的cookie(以及一个长期未来的到期日期)。每当用户访问该网站时,请检查cookie是否属于被禁止使用的电子邮件地址,并对其进行数据库匹配。这样做的缺点是将负担转移到了合法用户身上。例如,如果他们使用ISP的电子邮件服务从国内ISP帐户注册,则他们将无法轻松地从网吧访问该网站。当然,获取免费电子邮件地址相对容易。

好的,谢谢您的评论。我会考虑连接账户和电子邮件,因为这是一个受限制的用户组(这是一个童子军网站,基本上是儿童和家长访问它,访问者可能具有受限制的权限)。 - Samuel

3

通常,禁止某种行为比禁止用户更好。

首先,出于技术原因:行为模式经常可以被检测到(例如,您可以禁止某些词语)。

其次,出于心理原因:惹恼他人的人往往是因为他们往往把事情看得太个人化了。禁止他们会强化这种情况。可能会导致报复和升级。


是的,我明白你的意思,但正如我上面提到的,这也是为了孩子们,保护孩子们非常重要。我的意思是,有些人可能会试图获取孩子的电话号码/地址,虽然孩子可能不认为这很危险,但实际上可能存在风险,因此我希望禁止这些人^^ - Samuel
我会关注用户的行为。你可以识别出手机号码是否正在输入,并拦截它以发送警告或者用点号之类的字符替换它。尽可能地,试着教育用户(即使是孩子)要表现得明智,而不是阻断事情或用户。 - reinierpost

1

你已经采用的方法可能是最好的,即IP封禁+阻止cookie。除了这两个方法,你真的没有太多其他选择(我知道,这很糟糕)。


好的,谢谢你的回答。对于大多数用户来说,当你在评论区遇到一些种族主义者或变态时,你只需要确保他永远不会再回来就足够了。 - Samuel

0

正如其他人指出的那样:基本上你没有太多可以做的。基本问题是这些技术禁止一个机器,而不是一个用户,并且很容易被规避(清除cookies、更改IP或使用另一台计算机)。

你可以尝试自动检测用户通过他们展示的某些行为,然后快速阻止他们当前的机器。可以自动检查的不良行为包括发布过多评论、垃圾评论(可以使用Mollom等工具自动检查),输入大量错误密码等。

另一个想法(但更加侵入式)是阻止他们的用户账户,并限制创建新账户(需要管理员先确认)。


谢谢回答,我考虑过使用访问者的计算机、浏览器和 IP 范围 - 但那些使用不同计算机和浏览器的人会受到影响。 - Samuel

0

如果是用于论坛或类似的地方,阻止垃圾邮件/滥用的唯一真正方法是结合图像验证和管理员激活的帐户创建。这两种方法都会对您的网站的可用性产生不良影响。

IP封禁

个人认为应该避免使用IP封禁,除非它们是已知的垃圾邮件服务器。封禁普通用户的IP地址是没有意义的,因为大多数宽带IP地址是动态的,所以你可能会封禁其他人拿到那个IP地址的人。

Cookie

使用Cookie可以有效地封禁那些不了解如何清除浏览器缓存/cookie等的普通“非IT”用户。我相信不超过10%的网络用户知道如何做到这一点...


我在之前的评论中指出这是一个童子军网站,因此孩子们会在上面浏览。基本上,我想要防止色情狂和种族主义者与他们接触,我会考虑可用性与安全性之间的平衡 - 谢谢您的评论。 - Samuel
我假设你正在使用一个开源的PHP论坛,如果是这样的话,大多数都会有添加或使用图像验证的功能,并设置选项来预先审核新用户(这样你就可以确保知道他们是谁)。相信我,你会需要这两个功能的,我已经建立和管理了几个大型论坛,你最终会遇到成百上千的机器人试图注册... - Alex
实际上这是一个自己编写的“论坛”,因为网站集成问题,我不想使用预先编写的论坛。基本上这个想法是让人们在例如图片上留下评论 - 当他们添加评论时,它们会被保存,他们已登录并通过IP和cookie跟踪,下次自动登录 - 我建立了这个系统,使得每个人都可以轻松使用。我完全意识到这可能会有不好的结局,所以我首先构建了一些评论过滤器和IP封禁。我将考虑电子邮件注册/验证码,但仍保持简单的想法。 - Samuel

0

你可以在你的网站上阻止VPN的使用(我想这是一个论坛,如果用户可以发布帖子),为此,vpnblocker.net非常便宜和有效...通过VPN阻止、IP封禁和Cookie阻止,你可以阻止非持续性垃圾邮件发送者。如果他们有静态IP地址,他们将不会返回。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接