3

我阅读了一种可能的措施来过滤垃圾邮件并希望获得意见(建议)。

测量是这样的:

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

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

这样的措施有用吗?可能代替 $_SERVER["HTTP_REFERRER"] 可以使用其他东西?这种方法是否合理?

4

1 回答 1

1

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

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

一个很好的解决这个问题的方法:

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

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

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

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

于 2013-07-28T20:10:41.177 回答