防止机器人提交表单的javascript代码

javascript code to prevent bots from submitting form

本文关键字:javascript 代码 表单 提交 机器人      更新时间:2023-09-26

我需要一个javascript代码来阻止机器人提交表单。但我需要一个javascript客户端代码,它的工作方式类似CAPTCHA,但不调用服务器

感谢

最直接和简单的方法是在实际点击按钮时动态添加或编辑表单数据:

<input type="hidden" name="SubmittedByHuman" value="NO" />
<input type="submit" value="Submit me" onclick="this.form.elements['SubmittedByHuman'] = 'YES';" />

这样,在服务器端检查名为"SubmittedByHuman"的表单元素的值——如果它是"否",则意味着绕过了提交按钮——或者正如人们在评论中正确提到的那样,用户确实点击了,但禁用了JavaScript。

执行类似的操作

<h1>Type the result in the input box : 1+1</h1>
<input id="sum" type="text"/>

在提交之前,请检查输入中的值是否为2,然后提交。

为了改进这种类型的代码,您可以在h1中随机创建这两个值,并将它们保存到var中,然后再提交检查输入和总和是否相同。

我怀疑这是可能的,因为机器人足够复杂,可以绕过大多数事情。

记住,机器人不会在浏览器中打开网页并按下提交。它可能会扫描页面以查找<form>,列出所有<input>字段,并执行包含每个字段的所有数据的POST请求。

它不会运行任何javascript,也不会按下任何按钮。您必须在服务器端进行检查。