当前位置:  开发笔记 > 编程语言 > 正文

如何验证机器人是否正在输入信息

如何解决《如何验证机器人是否正在输入信息》经验,为你挑选了2个好方法。

我有一个用户填写的Web表单,信息发送到服务器并存储在数据库中.我担心机器人可能会填写表格,我最终会得到一个充满无用记录的数据库.如何防止机器人填写表格?我想也许像Stackoverflow的机器人检测,如果它认为你是一个机器人,它会要求你验证你不是.Perl,Java或PHP中是否有服务器端API?



1> 小智..:

有几种解决方案.

    使用验证码.据我所知,SO使用reCAPTCHA.

    在表单中添加一个额外的字段并用CSS隐藏它(display:none).普通用户不会看到此字段,因此不会填写该字段.如果此字段为空,请检查提交.如果没有,那么您正在处理一个仔细填写所有表单字段的机器人.这种技术通常被称为"蜜罐".

    添加JavaScript计时器功能.在页面加载时,它会从零开始一个值,然后随着时间的推移逐渐增加.普通用户会在一段时间内阅读并填写您的表单,然后才能提交.机器人会在收到表格后立即填写并提交表格.您在提交时检查值是否从零开始变大.如果有,那么它可能是真正的用户.如果您只看到几秒钟(或者由于机器人没有执行JavaScript而根本没有任何值)那么它很可能是一个机器人.但是,只有在您决定要求用户使用JavaScript才能执行"写入"操作时,这才会起作用.

还有其他技术可以肯定.但这些都非常简单有效.



2> bdonlan..:

您可以使用reCAPTCHA(与stackoverflow相同) - 它们具有许多编程语言的库.

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有