防止虚假注册的最佳方法是什么?

时间:2012-09-18 18:20:45

标签: javascript security registration humanize

我想了解更多关于限制仅为人类注册网站的解决方案。

验证码似乎是一个合适的解决方案,但事实证明它是not as good as it sounds。 如果解决方案不是盲人,聋人等的选择,这不是问题。

5 个答案:

答案 0 :(得分:4)

我最新的网络应用程序使用的过程使用户非常容易并且对我来说很安全。

  1. 用户进入登录页面,输入他们的电子邮件地址并点击“我正在注册”复选框。
  2. 用户点击“注册”,他们的电子邮件地址被插入临时SQL表(称为signups),并且带有验证链接的电子邮件将发送到电子邮件地址。
  3. 用户点击验证链接,将其转到“创建密码”页面。
  4. 用户创建密码后,将电子邮件地址和密码插入users表中,并删除signups表中的条目。
  5. web app signup example

    这使它变得简单可靠。

    signups表还包括随机SHA1哈希(用于验证链接),注册后12小时设置的时间戳和IP地址。

    signups表中所有已过期时间戳的条目在当天的某些部分被删除。


    更新

    自写这个答案以来,我发现保持注册表格免受机器人的攻击是一场永无止境的战斗。

    随着时间的推移,正在开发新的技术和方法来规避安全措施。任何开发团队都可以做的最好的事情是定期检查注册的质量,并考虑如何使他们的注册形式更安全和直观地使用。

    是的,这是一个很好的工作和资源,但对你的注册形式和注册质量充满信心是非常值得的。

答案 1 :(得分:2)

验证电子邮件地址并仅允许已验证其电子邮件的用户是最简单,最快捷的解决方案。

答案 2 :(得分:1)

根据您网站的定位程度,使用honeypot可能非常有效。

简而言之,您的表单上有一个具有通用名称的字段 - 比方说email。您的实际email字段还有其他随机名称,如larp

使用CSS隐藏email字段,并添加一个文本标签,指示用户将该字段留空,如果他们碰巧看到它。

如果填写了email字段的任何注册,请发回成功消息然后将其删除。

答案 3 :(得分:0)

您可以让用户收听音频文件,然后在文本框中输入该字词。这就是我想为phpBB3做的事情,但是,他们不允许HTML标记用于验证问题。或者,您可以进行深度防御,并且CAPTCHA只是该过程的一部分。

答案 4 :(得分:0)

而不是验证码(键入图像中显示的单词)我见过要求你回答问题的网站,通常是基本数学。我没有实现这些,但我已经看过它们的几个地方所以它必须是各种CMS和软件的插件。

最重要的是,任何系统最终都会被规避。您可以最大限度地减少机器人注册,但我可以从经验中告诉您,有些人会向其他人(可以通过任何测试)支付注册网站的费用 - 工资通常很差,但是总有人会发现这是可以接受的。

因此,除了您使用的任何解决方案之外,您还需要定期重新评估该解决方案,并且您希望让人类审核新注册(可能每天一次?)以清除少数“机器人”确实可以通过。