我该如何阻止一个不断尝试注册更多帐户的滥用行为者?


41

我有一个免费的开放注册网站;任何人都可以注册,但我无法更改。但是,帐户必须在完成个人资料后得到管理员的批准,因此我可以访问多种信息来识别重复的用户(出生日期,“自我介绍”注释,电子邮件地址,照片,个人资料中报告的位置,地理位置IP ,IP地址等)

最近,该站点已受到单一用户的攻击,该用户极度滥用并且似乎没有时间注册多个帐户。这些帐户可以相对容易地被阻止,但是对于管理员(我)而言,这是一项繁重的工作,而且我会错过合法帐户中的一个(该用户每天注册约6个帐户)。

我已经:

  • 禁止用户的已知IP地址
  • 阻止从用于“一次性”电子邮件地址的已知域进行注册
  • 添加了一个特殊视图,以帮助我根据用户的已知访问方式识别帐户

我可以对Cookie等进行任何处理,以使该用户更难以注册吗?

这是Drupal 7网站。

编辑:就我而言,这是人类用户,而不是机器人。但是,自动程序答案对于垃圾邮件发送者特别针对的用户很有用。


我唯一能想到的是那些真的很难读的烦人的验证码,因为您认为某些字母/数字可能是两件事,并且您必须尝试5次才能正确猜出它。消极的一面,你会惹恼其他所有人,大声笑。
没有Sssweat

13
drupal.org/project/misery如果其他所有方法都失败。
Niall Murphy

7
实际上,您使用的前两个解决方案是非常糟糕的主意。IP地址甚至不足以唯一地识别整个网络,更不用说特定的计算机,也不用指定特定的用户!一个用户与许多其他用户共享一个设备并不罕见,其中该设备与许多其他设备在网络上共享一个服务提供商定期向不同客户重新分配的IP地址。禁止整套电子邮件域名更加糟糕。您确实有阻止合法用户的风险。
JBentley '16

3
当尝试答案中的建议时,我建议您不要为了惩罚不良用户而让您的好用户的生活变得不那么愉快。如果这样做,那么糟糕的用户将赢得胜利,而您可能会失去良好的用户。
rooby

Answers:


51

不要试图阻止用户注册(这是一个巨魔和黑客都喜欢的游戏),而是让该网站让他很烦。让他想离开,而不是让他想赢得巨魔比赛

我过去所做的(不是专门针对Drupal的)是让用户注册。然后,我破坏了他的特定帐户:

  1. 我撒if ($someuser) { sleep(rand($base, $base*2)) }在代码中,$base每天都会增加。我确保他有很多超时时间。
  2. 我会丢掉N%的职位,其中N从50%以上开始,然后才增加。如果帖子中包含某些关键字,则会立即将其删除。
  3. 我会随机删除CSS规则,因此页面显示不佳。同样,严重性将随着时间增加。

这需要我付出更多的努力,但是根据Sun Tzu的建议,我正在使用户讨厌我的网站。我希望他不要觉得他在烦扰我们,而应该让他对延迟和明显的错误感到烦恼。他花了不到一个星期的时间就放弃了我们。

编辑:在注释中,rooby用户提到了基于相同概念的Misery模块

  1. 延迟:创建随机长度的延迟,使连接看起来很慢。(默认情况下,这种情况发生的时间为40%)
  2. 白屏:向用户显示白屏。(默认情况下,这种情况发生的时间为10%)
  3. 页面错误:重定向到预定义列表中的随机URL。(默认情况下,这种情况发生的时间为0%)
  4. 随机节点:重定向到用户可访问的随机节点。(默认情况下,这种情况发生的时间为10%)
  5. 403访问被拒绝:向用户显示“访问被拒绝”错误。(默认情况下,这种情况发生的时间为10%)
  6. 找不到404:向用户显示“未找到”错误。(默认情况下,这种情况发生的时间为10%)
  7. 表单不提交:在验证过程中重定向回表单以防止提交。(默认情况下,这种情况发生在60%的时间)注意:有时某些表单会根据所按下的按钮进行验证,在某些情况下将不起作用。
  8. IE6崩溃:如果用户使用Internet Explorer 6,这将使他们的浏览器崩溃。(默认情况下,这种情况发生的时间为0%)
  9. 垃圾邮件:用设置的单词替换节点内容。(默认情况下,这种情况发生的时间为10%)
  10. 注销:注销用户。(默认情况下,这种情况发生的时间为10%)

8
我认为从理论上讲这很好,但是$someuser每次他们创建新帐户时都要进行硬编码的想法使我感到畏缩。不过,好主意。也许只是在帐户表中添加一个字段,例如一troll列。如果为1,则更改将生效。然后添加一个简单的界面,将某人标记为巨魔。至少这样,比硬编码用户名/用户名/电子邮件/等要容易一些。每次他们使用新帐户注册时。当然可以支持。
Nate I

5
@Nate我可以使它可重用。if (hellbannedUsers.contains($someuser))好一步。我只是不喜欢它首先要有多少种自制的逻辑,但是至少可以使它可重用。
djechlin '16

3
@djechlin当然可以使其可重用,因此我对在数据库中的表上更进一步提出了自己的看法。
Nate I

3
您可能对苦难模块感兴趣,以节省一些编码。
rooby

7
好答案。这方面的一种变体是让巨魔发布并向该用户显示该发布,但对所有其他用户隐藏它们。
zelanix

30

给滥用者的ISP发送电子邮件-他们杜绝它!

您有他的帐户创建时间的日志,以及用于注册的IP地址,对吗?您还拥有他所有骚扰性评论的日志?将这些日志发送到其ISP

您可以通过直接在https://whois.arin.net/ui上使用ARIN进行IP查找或通过另一种将其用于Whois的服务来查找ISP 。大多数用户都会为IP的拥有者提供一个实际的ISP,但是有些(通常是大型公司)会自己拥有IP。无论哪种方式,您都将找到拥有该IP的人,然后可以从中查找并获得滥用电子邮件地址(有时他们会在WHOIS信息中放置一个实际的滥用电子邮件地址,这很不错)来发送您的电子邮件地址。对ISP保持友善和礼貌。不要写史诗般的小说-保持简单。这样的内容就足够了,例如“此ip骚扰了我自己和我网站的用户,请查看日志”。他们每天看到成千上万个这样的故事,他们不想读一个痛苦的故事。

我曾经是ISP的网络工程师。对于这种行为,我们收到了无数骚扰报告。订户接到电话后,大约90%的时间就会停止。如果这种情况持续下去,则可能会采取法律行动,这意味着大多数ISP将采取非常认真的行动。

您的侵略者可能是一个与父母一起住在家里的孩子,这意味着当他的父母的互联网帐户被威胁要终止时,他们会为他的举止感到非常沮丧。

我个人采取了这条路线,即使侵略者不在您的国家,它也确实有效。ISP不善待用户滥用其网络。

边注

他可能正在使用代理。但是,除非他完全打算(从注册之日起)在您的网站上进行拖钓,否则他在初次注册时就不太可能使用代理。如果没有一个IP实际指向合法的ISP,您可以在其中实际发送滥用电子邮件,请尝试将其发送到他正在使用的任何代理服务。

人们有一个疯狂的想法,就是仅仅因为有人在使用代理服务器,他们才被发现。错了 代理服务通常遵循其他所有人都遵循的相同规则(当然也有例外)。当他们收到滥用报告时,就像ISP一样会处理它。

如果该用户落后于不能很好运行的代理服务器的可能性很小,我将遵循其他答复者的建议。严重的是,这种情况非常罕见,以至于大多数网站所有者永远都不会看到看似“无法检测到”的人的攻击。


2
这是唯一的实际解决方案。提出的其他所有内容似乎都是解决方法,而不是解决方案。
CVn

在这方面,Tor可能也是一个问题,但是如果您对此确实有困难,则始终可以选择阻止来自Tor 出口节点的流量。(最后将附带损害保持在最低水平。)
CVn

您能告诉我这个过程可能需要多长时间吗?我是在10天前发送信息的,至今还没有收到任何答复,甚至是对报告的确认。
帕特里克·肯尼

我从未收到实际答复。我从此行动过程中所见到的唯一一件事就是该人只是停止了他们的工作。该人是否还在骚扰您和您网站的用户?
Nate I

17

在您的问题上,您不会提及拥有验证码。也许,这个烦人的用户是机器人?我的猜测是您已经有一个验证码,并且该用户实际上是人类。

但是...如果不是这种情况,我建议:

验证码

使用Google reCAPTCHA网络服务来改善CAPTCHA系统并保护电子邮件地址。

在此处输入图片说明


9

地狱/暗影

由于阻止一个人创建新帐户来替换被阻止的帐户几乎是不可能的,因此对此问题的一种比较流行的解决方案是所谓的hellban(http://www.urbandictionary.com/define.php?term=hellban)或shadowban ,您可以在其中实施一项功能,以将某些帐户与其他帐户隔离开来,而又不会使其被禁止。

例如,您要确保他们觉得自己的经历是真实的,并且可以继续使用相同的帐户,但要确保其任何帖子或活动仅对禁止访问的帐户和任何帐户(或未登录的帐户- (在某些情况下)与禁止访问的帐户共享IP和/或Cookie。如果用户继续拖钓但没有响应,那么他们最终将离开。


如何在Drupal 7中实现呢?
reinierpost

1
@reinierpost- 洞穴是实现此目标的一种选择
BryanH 2016年

7

根据No Sssweat的建议,我将其作为答案而不是评论,以便更多的人看到它。

Drupal.org/project/misery很好地完成了用大约八种不同方法烦扰用户的废话。随机超时,注销,随机重定向等,并且频率是可变的。

dotancohen的简单版本很好地写了这个问题。


6

使用第二个因素怎么样?在您的注册中,说您将向他们的电话或电子邮件发送短信,并要求他们通过单击链接并发回信息来确认注册。您将获得比IP地址更难以欺骗的标识符,并且以这种方式将其过滤可能会更容易。显然将需要少量脚本编写...


5

实际上这是不可能的。

您不能阻止一个人一次又一次地注册。您唯一可以做的就是加强注册过程,并仔细检查他们的ID(通过电子邮件地址 google帐户 facebook帐户 LinkedIn帐户电话号码等),并对其进行两次/三次检查,并将每个人与特定的ID关联起来所有这些细节。

特定的人可以通过Web代理选择另一个网络,创建许多@email,打开多个facebook / google / LinkedIn帐户,依此类推,但是您将永远无法阻止该人再次注册(除非您检查其DNA)。

您唯一的选择是加强注册过程。


2
就像我说的那样,要求您的新用户将其帐户与唯一的Facebook帐户,唯一的google帐户,唯一的LinkedIn帐户以及您向其发送SMS的唯一电话号码绑定。您的位置非常好!没有真正昂贵的手段,您不能确保用户仅注册一次。此外,您可以使用的唯一方式会惹恼您的未来用户(谁愿意绑定ggl / SO / fb / LinkedIn / GH帐户+通过邮寄邮件发送其ID,只是创建一个新帐户?)
Auzias

11
这也是减少真实用户数量的一种快速方法。
Tom.Bowen89 '16

3
您在争论,在最坏的情况下这是不可能的,即,如果拥有数十亿美元的高级情报机构无法帮助您。OP很有可能像一个11岁的小家伙一样在某个地方打交道。因此,您的答案既不切实际,又使IMO产生误导。
djechlin '16

2
您的回答自相矛盾。它说您不能这样做,那么唯一的办法就是加强注册过程,这实际上并不一定能解决问题,也不是唯一的潜在解决方案。
rooby

1
我知道;)或没有Google,也没有LinkedIn
Auzias

4

如No Sssweat所建议,您可以使用reCAPTCHA。但是,如果您不想惹恼合法用户,则可以尝试Honeypot模块。它提供了一个不应该填写的额外字段的选项(AFAIK机器人可以填写所有字段)或具有时间限制。

文档读为

Honeypot使用honeypot和timestamp方法来阻止垃圾邮件机器人在Drupal网站上填写表单(在此处了解更多信息)。这些方法对许多垃圾邮件僵尸程序有效,并且不像验证码或其他惩罚用户[YouTube]的方法那样具有侵入性。

另一个选项是Spambot模块,它通过根据Stop Forum Spam验证注册尝试来防止垃圾邮件。

Spambot通过根据Stop Forum Spam(www.stopforumspam.com)在线数据库验证注册尝试,从而保护用户注册表单免受垃圾邮件发送者和垃圾邮件发送者的侵害。它还添加了一些有用的功能来帮助处理垃圾邮件帐户。


3
这适用于水龙头,而不是人类。
user253751 '16

3

这个问题有一个答案-尽管社区可能会发动这种攻势。我不知道为什么,为了节省成本,这条路没有经常使用。

向闯入您的站点并且违反美国法典第XVIII标题“篡改计算机,欺诈和滥用”的个人发送终止通知。

如果他们不停止行动,请拨付现金并提起诉讼。在1990年代中期,我在WDMO中遇到了第一个案例,其中堪萨斯城地区的唯一ISP被3个青少年砍死。我联系了这些家庭(他们植根了其中一台服务器,并且愚蠢到足以存储他们的应用程序,以将其真实姓名和地址加入“ Warez”组的一个隐藏子目录中),并要求他们阻止青春期男孩这样做。他们拒绝了。

在长达54页的投诉中,我不得不向新任命的法官解释:ISP,互联网,超权限访问等。

我不仅是一个倡导者,还访问了我的一个帐户(感谢上帝,而不是客户帐户-The Rust List),我被打勾了。我指控父母(在民事诉讼中被告是未成年人的唯一途径),并说父母在没有充分监督的情况下将危险工具置于未成年人手中,并且未成年人从事了被盗软件的转让,并且儿童色情片(是的,为16岁的GF拍照的16岁男孩是“儿童色情片”)。我触犯了房主的政策,并且有一种补救措施,当时的法院甚至不会考虑:终身禁止青少年使用计算机。

发现转让后一周内就解决了。

您还尝试了其他所有方法:通过钱包切除术将这种小东西砸破。请小心挑选一位知道这是什么的律师,而不要选择与“大公司”有关联的律师,在该公司您将被处死。

请考虑一项阻止混蛋访问您网站的法院命令如何运作:他/他被禁止-您发现他/她违反法院命令的IP地址-将其发送给您的律师,并向法院提出了动议,要求其违反该命令,法院将以“表演原因命令”作出回应,说明为什么不应将被告人held视法庭。

-来自其他站点/ IP地址的攻击开始进入-告诉您的律师-响应可能包括镜像被告计算机,强制令禁止被告完全访问Internet,以及在发现被告违反了代理人的命令后,法院将对其施加制裁。

最终,这个混蛋可能将自己永远限制在互联网之外。如果您在这之后真的很生气,并且您想确定被告人不在互联网上,请雇用一个PI跟踪被告人一周或十天(不便宜),并且他/他正在访问Internet。从星巴克-或McD,您可以拥有它们:回到法官手中。

最终命令是令人难以置信的,只有在有大量证据证明被告例行违反了法院的命令时才会发生:没有智能手机,没有VOIP,没有电缆或卫星电视(互联网可用,并且他/她已完全无视了法院的命令)。法律,因此不允许他们窃取任何东西以获取访问权限),互联网(如果禁止终身禁止,那就很好-可能不会),物联网以及最终没有计算设备。

如果被告在科技行业谋生,他们有沟渠可以挖,汉堡可以翻转。

这就是以核选择结束这一点的方法。


@ Pierre.Vriens无论如何这都是有趣的信息,当我在东京时,我的公司和滥用用户在美国。
Patrick Kenny

好,那么抱歉,我的评论是(我现在已经删除了之前的评论)...尽管我正在用欧元眼镜看它
Pierre.Vriens

2

我喜欢痛苦的模型,但是我会添加随机将他发送到一个页面,其中包含非常响亮的烦人消息,而其他时候则将他发送到非常糟糕的色情网站。如果他在公开场合,可能会给他带来麻烦或尴尬的任何事情。


1
绝望的时代要求采取绝望的措施,这真令人讨厌。我可能会将他重定向到Rick Roll,大声笑。
No Sssweat

1
这将使原来他被阻塞
安赫尔

2

我已经专门为这种情况编写了一个模块。它被称为“强制执行空格”,可以在此处找到,它的作用是屏蔽名称中至少包含1个空格的所有注册人。可以进一步配置它,您可以选择需要显示多少个字符的字符。它的继承率也接近100%

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.