我有一个网络表单,用户填写该表单并将信息发送到服务器并存储在数据库中。我担心机器人可能只是填写表格,而我最终会得到一个充满无用记录的数据库。如何防止机器人填写我的表格?我在想也许类似于 Stackoverflow 的机器人检测,如果它认为你是机器人,它会要求你验证你不是。是否有 Perl、Java 或 PHP 语言的服务器端 API?
有几种解决方案。
使用验证码。 SO用途验证码据我所知。
在表单中添加一个额外的字段并使用 CSS 隐藏它(display:none)。普通用户不会看到此字段,因此不会填写它。您在提交时检查该字段是否为空。如果没有,那么您面对的机器人已经仔细填写了所有表单字段。这种技术通常被称为“蜜罐”。
添加 JavaScript 计时器功能。在页面加载时,它的初始值为零,然后随着时间的推移而增加。普通用户会阅读并填写您的表单一段时间,然后才提交。机器人收到表格后会立即填写并提交。您检查提交时该值是否与零相差很大。如果有,那么它可能是真正的用户。如果您只看到几秒钟(或者由于机器人不执行 JavaScript 而根本看不到任何值),那么它很可能是一个机器人。然而,只有当您决定要求用户打开 JavaScript 才能执行“写入”操作时,这才有效。
当然还有其他技术。但这些都是非常简单有效的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)