5

最近我帮助一些朋友在他们的网站上发布了一个邀请系统,它的工作原理是这样的:用户创建一个帐户,我们发送一封验证电子邮件,当他验证电子邮件时,他会获得一个免费积分,可以在网站上消费。除此之外,他还拥有可以在社交网络上或通过电子邮件分享的个性化链接,当人们使用此链接注册时(再次通过电子邮件验证帐户),他每次邀请都会获得一个积分。很像 thefancy.com 上的邀请系统或网络上任何其他奖励驱动的邀请系统。

最近,我们看到可能是自动化的虚假用户帐户的比率上升。注册页面上有一个验证码,但我们知道这可以被绕过。我们还看到,用户创建一次性电子邮件地址以在特定邀请链接后创建帐户的比例有所提高,从而归功于一位合法用户,该用户随后使用了他获得的免费积分。

我正在寻找一种自动化的方法来防止这种滥用。我目前正在研究对来自同一 IP 地址的邀请/注册设置速率限制,但该系统本身有其自身的缺陷。

还有其他经过生产测试的想法吗?

谢谢

编辑: 我还建议通过短信进行 2 因素注册,但由于预算不足而被拒绝。

4

4 回答 4

5

我以前使用过的一个非常简单的方法是在注册表中添加一个使用 CSS 隐藏的附加输入(即具有显示:无)。大多数表单机器人会填写此字段,而人类不会(因为它不可见)。然后,在您的服务器端代码中,您可以拒绝任何填充了输入的 POST。

很简单,但我发现它非常有效!

于 2012-12-21T14:40:04.383 回答
5

在用户发送邀请之前,您似乎需要的不仅仅是一个经过验证的电子邮件地址,最好是显示用户以某种方式参与您的网站的东西。在不知道您的网站是什么的情况下,很难给出具体信息,但 StackOverflow 等效项要求用户至少拥有 X 名声才能邀请其他人。如果您正在运行一个论坛,您可以要求他们至少发布 X 个帖子。

我还建议在新帐户可以邀请之前有一个小的时间限制 - 例如,他们必须成为会员至少 X 天。这使自动邀请变得有些复杂。

于 2012-12-21T14:40:26.077 回答
1

一些想法:

  • 禁止使用“mailinator”之类的电子邮件。
  • 延迟推荐奖励,让您延长欺诈检测时间段,让您有更多时间检测虚假账户并做出相应反应。
  • 要求被推荐的用户在您提供任何推荐奖励之前创建一个创收交易(我知道这可能不是您可以做出的转变) - 可能反过来增加奖励以解决推荐人的不便(您应该节省通过减少欺诈来赚钱,所以不是硬卖)。
  • 机器学习。持续观察和调整您的欺诈检测。您拥有的数据越多,您就能更好地识别这些案例。(您提到的 IP 地址。)运输/账单信息更能说明它是否适用 - 请注意相邻的邮政信箱。
于 2012-12-21T15:36:45.223 回答
0

将 CAPTCHA 测试添加到确认页面。我想知道如果您的验证码以某种方式被绕过,它是否足够坚固。您可能会考虑使用看起来很流行的(可恶的)reCaptcha。确认页面上的验证码将降低“机器人”提交确认页面的风险。换句话说,它将实现注册后客户端与站点交互的想法。一种类似的方法是询问注册人的密码。

于 2012-12-21T14:47:46.193 回答