我知道很多脚本可以处理IP屏蔽、IP范围屏蔽等问题。
我正在尝试制作一种尽可能有效地封锁用户的方法。我想到了:
- IP屏蔽
- 设置cookie
- 但是,如果用户使用动态IP并且没有启用cookie,这对他们不会有太大作用。
- 为来自用户的多个变量(如浏览器、版本和其他信息)创建哈希值,并将它们添加到存储禁止用户名单或此类值的表中。
感谢提供的建议。
简单来说,你做不到。
有些用户可以阻止接收cookie,甚至使用代理伪造IP地址,你就是无法确保某些用户无法访问你的应用程序。
一个(极端的)选择是强制所有合法用户安装客户端证书并在服务器端进行检查,但正如我所说,这是一个极端的解决方案。我不喜欢为了访问某个站点而安装证书。
我建议你放手一搏;在未来的某个时候,你的恶意用户会感到厌倦,并寻找更有用的事情来做。
通常,禁止某种行为比禁止用户更好。
首先,出于技术原因:行为模式经常可以被检测到(例如,您可以禁止某些词语)。
其次,出于心理原因:惹恼他人的人往往是因为他们往往把事情看得太个人化了。禁止他们会强化这种情况。可能会导致报复和升级。
你已经采用的方法可能是最好的,即IP封禁+阻止cookie。除了这两个方法,你真的没有太多其他选择(我知道,这很糟糕)。
正如其他人指出的那样:基本上你没有太多可以做的。基本问题是这些技术禁止一个机器,而不是一个用户,并且很容易被规避(清除cookies、更改IP或使用另一台计算机)。
你可以尝试自动检测用户通过他们展示的某些行为,然后快速阻止他们当前的机器。可以自动检查的不良行为包括发布过多评论、垃圾评论(可以使用Mollom等工具自动检查),输入大量错误密码等。
另一个想法(但更加侵入式)是阻止他们的用户账户,并限制创建新账户(需要管理员先确认)。
如果是用于论坛或类似的地方,阻止垃圾邮件/滥用的唯一真正方法是结合图像验证和管理员激活的帐户创建。这两种方法都会对您的网站的可用性产生不良影响。
IP封禁
个人认为应该避免使用IP封禁,除非它们是已知的垃圾邮件服务器。封禁普通用户的IP地址是没有意义的,因为大多数宽带IP地址是动态的,所以你可能会封禁其他人拿到那个IP地址的人。
Cookie
使用Cookie可以有效地封禁那些不了解如何清除浏览器缓存/cookie等的普通“非IT”用户。我相信不超过10%的网络用户知道如何做到这一点...
你可以在你的网站上阻止VPN的使用(我想这是一个论坛,如果用户可以发布帖子),为此,vpnblocker.net非常便宜和有效...通过VPN阻止、IP封禁和Cookie阻止,你可以阻止非持续性垃圾邮件发送者。如果他们有静态IP地址,他们将不会返回。