防止用户启动多个帐户?

Posted

技术标签:

【中文标题】防止用户启动多个帐户?【英文标题】:Prevent users from starting multiple accounts? 【发布时间】:2010-09-15 06:29:43 【问题描述】:

我知道,到头来,做不到。

但是,有什么选择:

  a) 限制人们创建多个帐户的选项, b) 增加检测到多个帐户/人的机会

对于类似博客的网络服务? (人们可以注册自己的博客)

更新: 我认为“限制选项”已经得到很好的回答。 (没有可靠的方法,但我们可以提高标准) 但是,我仍然想知道还有哪些其他选项可以检测多个帐户?

【问题讨论】:

【参考方案1】:

我认为,正如很多人在上面提到的,最好的方法之一是验证手机号码,这就是我想首先使用的方法,如果它不是那么贵的话......

我找到了这个网站here,我认为它可以用于此目的,但我自己没有测试过,但它看起来非常现代且便宜

【讨论】:

【参考方案2】:

我认为另一个方向是让“大男孩”去做。

http://oauth.net/

将您网站的身份验证转交给 Google 或 Facebook 等知名的第三方。它不会防止重复帐户,但很高兴认为最新的垃圾邮件预防和诸如此类的东西会自动为您实施。

【讨论】:

【参考方案3】:

您可以设置跨浏览器 cookie,例如http://samy.pl/evercookie/(快闪饼干) 无法通过浏览器 cookie 删除删除它们永远保持 4,您可以跨浏览器读取 cookie。如果用户使用同一台计算机,它是最终的解决方案。 使用超过 1 台计算机时,IP 地址是您找出的唯一方法,但是(在我的情况下)有时 2 个真实的人在同一个房子里用 2 台计算机登录 2 我的网站

【讨论】:

ff 警告你 flash 正在尝试运行,这看起来是恶意的【参考方案4】:

我在现实生活中见过的最难破解的方法是使用单独的硬件介质进行确认(通过 SMS 发送确认码用于公共服务,或邮寄 RSA 令牌用于更敏感的东西,例如 Intranet访问),或要求提供具有财务约束力的身份证明,例如银行帐号(Paypal 向您的帐户存入几美分,金额总和就是您的密码)或有效的信用卡号。

【讨论】:

【参考方案5】:

我假设您是在谈论免费服务?我想不出任何既没有严重的缺点,也不会轻易被击败的方法。像设置 cookie、要求唯一的电子邮件地址这样的事情很容易被打败。

要求唯一的 IP 地址并非万无一失,但在某种程度上可能会奏效,直到您拥有大量用户并收到代理背后的人的投诉。

最好的方法是收费或要求人们提供某种个人信息,例如您验证的真实姓名/电话/地址,或 CC 号码,但这是侵入性的(同样,您可能只需要认真的用户)愿意提供此类信息)。

我想我会转过头来问“你为什么不想让人们拥有多个帐户?”

可能有其他一些方法可以缓解您的根本原因,即如果您担心大量孤立的博客,您可以扫描一段时间不活动并禁用它们,或者至少安排他们查看人类。如果您担心垃圾博客,您可以定期扫描所有博客内容以查找垃圾内容。如果您担心机器人并且正在使用一些通用软件(如 WordPress),请更改表单变量的名称,否则会保护您的表单免受机器人攻击。

一定要考虑其他解决问题的方法,因为如果这是像 Blogger 这样的典型免费服务,您将无法阻止人们注册多个帐户。

对于一个人检测多个帐户,您需要做的第一件事是有一个日志文件存储每个用户登录的完整数据(用户名、时间戳、IP、用户代理等),然后您可以对其进行分析之后。我将列出一些需要注意的事项,但仅通过仔细阅读日志文件,您可能会发现其他模式。要寻找的一些想法是:

设置跟踪 cookie(即随机哈希)并在登录时记录其值,从同一 cookie 值查找多个登录 从相同的 IP 地址/用户代理组合登录 仅从同一 IP 地址登录(不如前两个项目符号可靠) 使用来自免费网络邮件服务(Gmail 等)的电子邮件地址的帐户 密码相同的帐号

如果您担心垃圾博客,可以尝试对博客内容进行一些分析,即提取所有 <a href>s 并查找博客之间的相关性。您可以通过诸如 SpamAssassin 之类的内容运行博客内容本身,或者过滤掉诸如“viagra”和“rolex”之类的垃圾信息。

【讨论】:

这个列表真的很有帮助,cookie 是我现在要实施的一个很好的技巧,谢谢 :) 酷,我认为这是要走的路。找出拥有多个帐户的人并删除他们说“抱歉,您违反了我们的 TOS 并拥有多个帐户”(当然不告诉您您是如何知道的)比在注册时检测到它要容易得多。 ... 如果他们在尝试注册第二个帐户时确实被阻止,那么他们就会一直寻找,直到他们找到绕过阻止的方法。而且,拥有一个他们可能会花费大量时间删除的活跃帐户会让他们更加痛苦。他们会三思而后行再试一次。 Ehmm... 我在我的机器上运行至少 5 种不同的浏览器。这将给我 5 个不同的用户代理 + 5 个不同的 cookie - 相同的 IP 是的,但我和很多人一样在路由器/NAT 后面。 您应该无法检测到具有相同密码的帐户,除非您在没有向哈希添加唯一用户盐的情况下存储它们,这是不安全的。【参考方案6】:

要求用户使用信用卡注册。您无需向该卡收取任何费用,您只需检查该卡是否有效即可。

【讨论】:

有动力的用户可能愿意使用不止一张信用卡。这种方法似乎仍然不够。【参考方案7】:

您可以在创建帐户之前向用户发送短信进行验证。由于人们无法像获得电子邮件地址那样容易地获得手机号码,因此这可能会奏效。有些人可能可以获得两个或三个帐户,但不是无限数量。有许多服务可以让您以编程方式发送 SMS 消息,包括 Gizmo SMS、Text4Free 和 TxtDrop。

当然,这需要用户有手机,并且愿意向你提供号码。

【讨论】:

【参考方案8】:

你不能也不应该。您不是在与现实世界中的人打交道,而是与帐户打交道,因此请将它们视为具有平等生存权的抽象实体。

我可以即时想象的一些选项:

-- 电子邮件地址只有一个帐户。但我可以创建不止一封电子邮件...或使用 Mailinator。

-- 冗长乏味的验证程序。但这会阻止用户注册

-- 将 IP 绑定到帐户并阻止(暂时?)该 IP 创建另一个帐户。但是使用相同网关的两个不同用户将被阻止...

-- 使用 cookie。但用户可以删除它们。

【讨论】:

我喜欢能够随意生成我的电子邮件地址的随机排列。 contant+variable@gmail.com -> constant@gmail.com 表示法,或 variable@domain.org -> constant@domain.org 系列技巧,其中“变量”可以是任何东西。【参考方案9】:

我认为最好的方法是取消创建多个帐户的激励措施。

您是否以任何方式限制用户?可以通过创建多个帐户(轻松)克服这些限制吗?如果是这样,那么也许您应该考虑取消这些限制。

【讨论】:

好主意。我会让我的所有用户无限次投票给他们自己的 cmets。 (讽刺)呵呵对不起,我只是厌倦了基本上说:“我不会对你的问题给出实际答案,因为你问错了问题而且我比你聪明。”不过,这不是一个坏答案呵呵 好吧,没有什么是单一的解决方案。这是我提出替代方案的方式。如果你认为它暗示或我认为它暗示我比你更聪明,我们可能会在这里遇到更大的问题> “无限多次投票”的问题仅在投票是增量的情况下才有效。想想我的投票只在计算将向我建议的内容时才重要的建议引擎,或者只让我的朋友感兴趣的社交网站:问题失去了背景。【参考方案10】:

一种常见的选择是通过他们的电子邮件验证个人身份。实际上让他们回复发送到他们帐户的电子邮件。有些网站更进一步,不允许来自 yahoo、g-mail、hotmail 等域的地址...

【讨论】:

这仍然不能完全阻止某人创建多个帐户,但由于大多数人只创建一个活动邮件帐户,它可能是您能找到的最接近的帐户。 对于此类网站,我使用spam.la 或fakemailgenerator.com 经常更改电子邮件地址的域。我认为没有办法在不惹恼 /good/ 用户的情况下防止这种情况发生。 而且您刚刚排除了使用某些电子邮件客户端的任何人。 现在垃圾邮件的方式是,网络邮件不是无效的选择,它是避免垃圾邮件的最佳选择。

以上是关于防止用户启动多个帐户?的主要内容,如果未能解决你的问题,请参考以下文章

如何防止亚马逊账户关联

如何防止用户登录仅用于模拟的帐户?

当用户使用其他帐户登录时,如何防止激活应用内订阅?

使用 google 登录可防止用户使用其他帐户再次登录 - iOS

如何防止系统在 Win32 服务中关闭或重新启动?

防止 Java 框架的多个实例