2012-12-21 94 views
5

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

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

我正在寻找一种自动化的方法来防止这种滥用。我目前正在调查对来自同一个IP地址的邀请/注册进行限制,但这个系统本身有它自己的缺陷。

任何其他生产测试的想法?

谢谢

编辑: 我也提出了通过短信2因子注册,但被拒绝了,由于预算短缺。

+3

这些假定的假帐户是否仍在验证中? –

+0

是的,他们需要通过电子邮件进行验证才能获得免费的信用额度,并将免费信用额度发送给唯一链接的所有者。 – Thanos

+1

我建议不要使用5分钟邮件站点使用的任何电子邮件域名。 – CharliePrynn

回答

5

在用户发送邀请前,您似乎需要的不仅仅是一个经过验证的电子邮件地址,理想情况下显示用户以某种方式参与了您的网站。不知道你的网站是什么是很难给出具体细节,但StackOverflow的等价物将要求用户至少有X的声望,才可以邀请其他人。如果您正在运行论坛,则可能需要他们至少发布了X条帖子。

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

+0

虽然我同意,但当合法用户需要等待执行网站操作时,很难保持合作关系。只要网站比邀请树多,它应该没问题。 –

5

我以前使用过的一个非常简单的方法是在使用CSS隐藏的注册表单中添加一个额外的输入(即具有display:none)。大多数形式的机器人将填补这个领域,而人类不会(因为它不可见)。在您的服务器端代码中,您可以拒绝任何输入填充的POST。

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

+0

与javascript生成的字段相同,从表单显示到表单提交的时间流逝比较以及验证客户机参与的其他技术。但遗憾的是,由于机器人编程,大多数写他们的人也知道对策。 –

0

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

+0

确认页面中的另一个验证码会为安全提供什么?我们已经使用reCAPTCHA,但以99%的准确率来破解也相对容易。 – Thanos

1

几个想法:

  • 潘基使用像 'mailinator' 的电子邮件。
  • 延迟推荐奖励,让您延长欺诈检测时间段,让您有更多时间检测虚假账户并做出相应回应。
  • 要求被推荐的用户创建之前的收益产生交易您发出任何推荐奖励(我知道这可能不是您可以进行的转换) - 可能反过来增加奖励以解决引荐者带来的不便(你应该通过减少欺诈来节省资金,所以不是硬销售)。
  • 机器学习。持续观察和调整您的欺诈检测。你有更好的数据,你将能够识别这些案件。 (你提到的IP地址)。运输/结算信息更能说明它是否适用 - 注意相邻的邮政信箱。