【问题标题】:Preventing abuse to an invite system防止滥用邀请系统
【发布时间】:2012-12-21 14:24:50
【问题描述】:

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

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

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

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

谢谢

编辑: 我还提出了通过 SMS 进行 2 因素注册,但由于预算不足而被拒绝。

【问题讨论】:

  • 这些假定的假账户是否仍在验证中?
  • 是的,他们需要通过电子邮件进行验证才能获得一份免费积分并将一份免费积分发送给唯一链接的所有者。
  • 我建议禁止 5 分钟邮件站点使用的任何电子邮件域。
  • 我检查了一些电子邮件地址。似乎相当多的可疑邮件也来自 GMail,而不仅仅是来自一次性邮件提供商。某种 @gmail.com 类型。
  • 您如何验证电子邮件地址?如果电子邮件中的链接可以通过编程方式生成,那么他们可能只是在计算验证链接的外观并提交它;这将允许他们生成任意帐户而无需拥有地址。

标签: php zend-framework security spam-prevention invite


【解决方案1】:

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

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

【讨论】:

  • 虽然我同意,但当合法用户必须等待执行站点操作时,很难让他们保持参与。只要网站上除了邀请树之外还有更多内容,应该没问题。
【解决方案2】:

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

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

【讨论】:

  • 同样适用于 javascript 生成的字段、从表单显示到表单提交的时间间隔比较,以及其他验证客户参与的技术。但遗憾的是,由于机器人是经过编程的,大多数编写它们的人也知道对策。
【解决方案3】:

一些想法:

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

【讨论】:

    【解决方案4】:

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

    【讨论】:

    • 确认页面中的另一个验证码会为安全提供什么?我们已经使用了 reCAPTCHA,但它也相对容易破解,准确率达到 99%。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-30
    • 2020-12-20
    相关资源
    最近更新 更多