5

I would like to know more about the solutions to restrict registering for a website for humans only.

Captcha may seem a proper solution but as it turns out it's not as good as it sounds. And it's not a problem if a solution is not an option for blind, deaf people etc..

4

5 回答 5

4

我最新的 Web 应用程序使用的过程对用户来说非常容易,对我来说也很安全。

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

网络应用注册示例

这使它变得简单和可靠。

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

signups表中具有过期时间戳的所有条目都会在一天中的某些部分被删除。


更新

自从写下这个答案后,我发现保持注册表单不受机器人攻击是一场永无止境的战斗。

随着时间的推移,正在开发新的技术和方法来规避安全措施。任何开发团队能做的最好的事情就是定期检查注册的质量,并想办法让他们的注册表格更安全、更直观的使用。

是的,这是一个很好的工作和资源,但是对你的注册表格和注册质量有信心是非常值得的。

于 2012-09-18T18:36:31.750 回答
2

根据您网站的针对性,使用 ahoneypot可能非常有效。

简而言之,您的表单上有一个具有通用名称的字段——比如说email. 您的实际email字段有一些其他随机名称,例如larp.

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

如果有任何注册进入并email填写了该字段,请发回一条成功消息,然后将其删除。

于 2012-09-18T18:34:42.207 回答
2

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

于 2012-12-10T13:59:51.007 回答
0

而不是验证码(输入图像中显示的文字),我见过要求您回答问题的网站,通常是基本数学。我还没有实现这些,但我已经在几个地方看到了它们,所以它一定是各种 CMS 的插件等等。

底线是,任何系统最终都会被规避。你可以尽量减少机器人注册,但我可以根据经验告诉你,有些人会付钱给其他人(他们几乎可以通过任何测试)来注册网站 - 薪水通常很差,但是总有人会觉得这是可以接受的。

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

于 2012-09-18T18:31:05.900 回答
0

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

于 2012-09-18T18:24:54.577 回答