不可直接访问的登录表单是否有助于阻止机器人?

时间:2013-03-01 20:18:14

标签: php login

我读了一个可能的措施来过滤掉垃圾邮件,并希望得到意见(建议)。

措施是这样的:

1)无法直接访问登录表单。我的意思是如果有人进入www.domain.com/login.php,他将被重定向到索引或类似的东西。

2)在index.php上是按钮Login。当访问者点击登录时,会出现弹出登录表单。登录后我检查$ _SERVER [“HTTP_REFERRER”]。如果不是login.php,那么错误(失败)

此措施有用吗?可能代替$ _SERVER [“HTTP_REFERRER”]可能会使用别的东西吗?这样的方法是否合理?

1 个答案:

答案 0 :(得分:1)

我会说:不是真的。但是有一个更好的解决方案,见下文。

问题是,好的机器人可以做人类也可以做的一切。大多数机器人甚至比人类“更好”,因为他们知道登录系统如何工作等等!使用JavaScript / Iframe / AJAX构造来防止机器人将有助于对抗仅搜索文本输入和密码输入表单的主流爬虫。即使您的网站使用了超级可间接访问的登录表单,即使这样,有人也可能为这个用例构建一个机器人。

解决此问题的好方法:

  1. 使用延时登录拦截器!这里有一个关于如何延迟 - 最后甚至阻止 - 在登录失败的登录失败之后登录attemts的教程:http://www.codedevelopr.com/articles/throttle-user-login-attempts-in-php/

  2. 此外,在首次登录失败后使用高端验证码。

  3. 对于真正的坏人:如果您从特殊IP获得大量登录失败,则阻止此IP。这是非常先进的,但却是一种常见的做法。

  4. (请注意:本教程的作者仍然使用mysql_query,这已经过时多年了。你应该使用mysqli或PDO。)