我读到了一项可能的过滤垃圾邮件机器人的措施,并希望获得意见(建议)。
措施是这样的:
1) 登录表单无法直接访问。我的意思是,如果有人输入 www.domain.com/login.php,他将被重定向到索引或类似的内容。
2) 在index.php 上有按钮登录。当访问者单击“登录”时,会弹出登录表单。登录后我检查 $_SERVER["HTTP_REFERER"]。如果不是login.php,则错误(失败)
这样的措施有用吗?可能可以使用其他东西来代替 $_SERVER["HTTP_REFERRER"] ?这样的方法到底合理吗?
我会说:并不真地。但有更好的解决方案,请参见下文。
问题是,好的机器人也可以做人类能做的一切。大多数机器人甚至比人类“更好”,因为它们知道登录系统如何工作等!使用 JavaScript/Iframe/AJAX 结构来防止机器人将有助于对抗仅搜索文本输入和密码输入表单的主流爬虫。即使您的网站使用超级棒的可间接访问的登录表单,即使这样,也有人可能会为该用例构建一个机器人。
这个问题的一个很好的解决方案:
使用延时登录拦截器!这里有一个关于如何在大量登录失败后延迟甚至阻止登录尝试的教程:http://www.codedevelopr.com/articles/throttle-user-login-attempts-in-php/ http://www.codedevelopr.com/articles/throttle-user-login-attempts-in-php/
另外,在第一次登录失败后,请使用高端验证码。
对于真正的坏人:如果您从某个特殊 IP 收到大量登录失败的信息,请阻止该 IP。这是相当先进的,但却是一种常见的做法。
(请注意:本教程的作者仍然使用 mysql_query,它已经过时多年了。您应该使用 mysqli 或 PDO 来完成。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)