Tha*_*nos 5 php security zend-framework spam-prevention invite
最近我帮助一些朋友在他们的网站上发布了一个这样的工作邀请系统:用户创建一个帐户,我们发送一封验证邮件,当他验证电子邮件时,他获得了一个免费信用在网站上花费.除此之外,他还可以在社交网络上或通过电子邮件分享个性化链接,当人们使用此链接注册时(再次通过电子邮件验证帐户),每次邀请可获得一个积分.就像thefancy.com上的邀请系统或网上任何其他奖励驱动的邀请系统一样.
最近我们看到虚假用户帐户的提升率可能是自动化的.注册页面有一个CAPTCHA,但我们知道这可以被绕过.我们还看到用户创建一次性电子邮件地址的比率提高,以便在特定的邀请链接之后创建帐户,从而使一个合法用户认为他们使用他获得的免费信用.
我正在寻找一种自动化的方法来防止这种滥用.我目前正在研究对来自同一个IP地址的邀请/注册的速率限制,但这个系统本身就有自己的缺陷.
还有其他生产测试的想法?
谢谢
编辑: 我还建议通过短信进行2个因子注册,但由于预算不足而被拒绝.
我之前使用的一个非常简单的方法是在注册表单中使用CSS隐藏其他输入(即显示:无).大多数表单机器人将填充此字段,而人类不会(因为它不可见).在服务器端代码中,您可以在填充输入的情况下拒绝任何POST.
很简单,但我发现它非常有效!
在用户发送邀请之前,您似乎需要的不仅仅是经过验证的电子邮件地址,理想情况下,某些内容会显示用户以某种方式参与您的网站.在不知道您的网站是什么的情况下很难给出具体信息,但StackOverflow等价物要求用户在邀请其他人之前至少拥有X声誉.如果你正在运行一个论坛,你可能要求他们至少发了X个帖子.
我还建议在新帐户邀请之前有一个小的时间限制 - 例如,他们必须至少成为会员X天.这在一定程度上使自动邀请变得复杂.