【发布时间】:2012-12-21 14:24:50
【问题描述】:
最近我帮助一些朋友在他们的网站上发布了一个邀请系统,它的工作原理是这样的:用户创建一个帐户,我们发送一封验证电子邮件,当他验证电子邮件时,他会获得一个免费的积分来在网站上消费。除此之外,他还拥有可以在社交网络上或通过电子邮件分享的个性化链接,当人们使用此链接(再次通过电子邮件验证帐户)注册时,他每次邀请都会获得一个积分。很像 thefancy.com 上的邀请系统或网络上任何其他奖励驱动的邀请系统。
最近,我们看到可能是自动化的虚假用户帐户的比率有所上升。注册页面上有一个验证码,但我们知道这可以被绕过。我们还发现,越来越多的用户创建一次性电子邮件地址以通过特定邀请链接创建帐户,从而将其归功于一位合法用户,该用户随后使用了他获得的免费积分。
我正在寻找一种自动化的方式来防止此类滥用行为。我目前正在研究对来自同一 IP 地址的邀请/注册设置速率限制,但这个系统本身有它自己的缺陷。
还有其他经过生产测试的想法吗?
谢谢
编辑: 我还提出了通过 SMS 进行 2 因素注册,但由于预算不足而被拒绝。
【问题讨论】:
-
这些假定的假账户是否仍在验证中?
-
是的,他们需要通过电子邮件进行验证才能获得一份免费积分并将一份免费积分发送给唯一链接的所有者。
-
我建议禁止 5 分钟邮件站点使用的任何电子邮件域。
-
我检查了一些电子邮件地址。似乎相当多的可疑邮件也来自 GMail,而不仅仅是来自一次性邮件提供商。某种
@gmail.com 类型。 -
您如何验证电子邮件地址?如果电子邮件中的链接可以通过编程方式生成,那么他们可能只是在计算验证链接的外观并提交它;这将允许他们生成任意帐户而无需拥有地址。
标签: php zend-framework security spam-prevention invite