如何使用Javascript保护机器人/爬虫的表单

How to protect a form for a bot/crawler using Javascript

本文关键字:爬虫 表单 机器人 何使用 Javascript 保护      更新时间:2023-09-26

对于我的一个网站,我正在制作一个评论框。过去,我在垃圾邮件机器人方面遇到了很多麻烦。我使用验证码来保护我的网站免受这些机器人的侵害,但是一些机器人设法通过使用外部服务绕过这些验证码。我也尝试通过检查http代理来检查,但结果证明这是不可靠的。

我现在正在寻找一种通过使用 Javascript 保护我的网站免受机器人攻击的方法。我试图简单地检查是否启用了javascript,如果是,那么我将显示以下形式:

<script type="text/javascript">
document.write('<the form to display>');
</script>

然而,我相信这太简单了,因为机器人在执行Javascript时变得越来越聪明。有人可以给我看一个例子或指导我走向正确的方向,如何使用Javascript保护我的网站免受机器人的侵害?

我建议使用"幻灯片提交"选项,如此处所述。我使用它,因为它不会为您的合法用户增加障碍,但对于机器人来说应该相当困难。但请记住,如果有人敬业,他们会超越你。你只是想让自动化的太难了。

编辑:我给出了一个忽略受损用户的快速答案。我所在的行业本质上仅限于视力正常和非运动障碍用户。上述解决方案仅在这些条件下有效。

如果您有视力不佳的用户,您可以考虑使用"蜜罐",但正如这里提到的(不能包含链接(,对于使用屏幕阅读器的人来说,它们往往会令人困惑/不可能。您可以提供音频验证码,但它们已解决且无法依赖(不能包含链接(。本文讨论了一些 CAPTCHA 替代方案,但它们对于评论框来说大多是矫枉过正的。您可能需要考虑新的Google替代方案,"我不是机器人"reCAPTCHA(不能包含链接(,但是,我认为它通过考虑用户与网站的交互方式来工作,并且使用辅助技术的人在与网站交互时可能没有标准模式。据我所知,没有可接受的方法可以让受损用户以完全可访问的方式获得 CAPTCHA 技术。

抱歉,我不能

引用所有内容,我因建议行业标准做法而被否决,所以现在我不能包含两个以上的链接。我知道可访问性很重要,投了我反对票的人,但是在没有提供替代方案的情况下击落所有内容是没有帮助的。