php - 防止滥用邀请系统

标签 php zend-framework security spam-prevention invite

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

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

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

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

谢谢

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

最佳答案

在用户发送邀请之前,您似乎需要的不仅仅是经过验证的电子邮件地址,最好是表明用户以某种方式参与了您的网站的内容。不知道你的网站是什么,很难给出具体细节,但 StackOverflow 的等价物会要求用户至少拥有 X 的声誉才能邀请其他人。如果您运营的是论坛,您可以要求他们至少发了 X 篇帖子。

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

关于php - 防止滥用邀请系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13991881/

相关文章:

php - 在我的例子中,如何在 PHP 中阻止既不是管理员也不是工作人员的用户访问某些页面?

security - 如何判断 IE 认为是 "nonsecure"的文件是什么?

php - 为什么 preg_match 返回一些空元素?

php - 用php计算水平放置多少张图片

mysql - zend 框架中是否存在任何自动问题,例如 mysql 表中的创建和修改日期?

zend-framework - 如何在zend框架中注册自定义库

php - 变量 $name 没有以 urdu 格式显示文本,而在 mysql 中它存储在 urdu 中

javascript - Youtube API loadVideoByUrl()函数

php - session.cookie_lifetime 不适用于 Firefox?

c# - 使用 C# 的 GnuPG 包装器