首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何防止机器人自动填写表单?

如何防止机器人自动填写表单?
EN

Stack Overflow用户
提问于 2010-03-05 22:44:06
回答 15查看 105.9K关注 0票数 112

我正在努力想出一个足够好的反垃圾邮件机制来阻止自动生成的输入。我读过像验证码,1+1=这样的技术?这些东西运行得很好,但它们也给应用程序的免费快速使用带来了额外的障碍(请不要找这样的东西)。

我已经尝试在我的所有表单中设置一些隐藏字段,但是使用display: none;,我确信可以配置一个脚本来跟踪表单字段id,而不是直接填充它。

你有没有实现/知道一个好的反自动填表机器人的方法?有没有什么东西可以通过HTML和/或服务器端处理无缝完成,并且(几乎)是防弹的?(如果没有JS,可以简单地禁用它)。

为此,我尽量不依赖会话(即计算一个按钮被点击的次数以防止重载)。

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2010-03-05 23:10:22

一种易于实现但不是万无一失的解决反垃圾邮件的方法是跟踪表单提交和页面加载之间的时间。

机器人请求一个页面,解析页面并提交表单。这很快。

人类输入URL,加载页面,等待页面完全加载,向下滚动,阅读内容,决定是否注释/填写表单,需要时间填写表单,然后提交。

时间上的差异可能是微妙的;如何在没有cookie的情况下跟踪时间需要服务器端数据库的一些方法。这可能会对性能产生影响。

此外,您还需要调整阈值时间。

票数 74
EN

Stack Overflow用户

发布于 2012-03-10 16:07:10

我所做的是使用一个隐藏字段,并将时间戳放在它上面,然后使用PHP将其与服务器上的时间戳进行比较。

如果它快于15秒(取决于表单的大小),那就是机器人。

希望这对你有所帮助

票数 21
EN

Stack Overflow用户

发布于 2012-09-20 02:22:42

实际上消除垃圾邮件的一种非常有效的方法是创建一个包含文本的文本字段,例如“删除此文本以便提交表单!”并且必须删除该文本才能提交表单。

在表单验证时,如果文本字段包含原始文本或任何随机文本,则不要提交表单。机器人可以读取表单名称,并自动填写姓名和电子邮件字段,但不知道是否必须从特定字段中删除文本才能提交。

我在我们的公司网站上实现了这个方法,它完全消除了我们每天收到的垃圾邮件。它真的很有效!

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2387496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档