繁体   English   中英

避免机器人点击按钮

[英]Avoid bots from clicking button

我有一个演示按钮的以下代码:

= form_tag(new_demo_path, :method => "put", id: "demo-form") do
  = hidden_field_tag :time, (Time.now.to_f * 1000)
  .cannot-see-me= text_field_tag :name, params[:name]
  = submit_tag button_title, :name => nil, :id => 'start_demo_btn', :class => button_class, onclick: "$('#please-wait').modal({keyboard: false, backdrop: 'static'});"

如果用户点击太快,它将不会做任何事情(为了避免机器人),还有一个隐藏的字段(一旦填写)将避免生成演示环境。

由于某些原因,googlebot仍然能够创建演示环境...在submit_tag或form_tag中是否有我可以包含的内容,指示它不要单击按钮?

基于另一篇文章: 如何防止机器人自动填写表格?

您可以跟踪页面加载,按钮单击以及加载的新页面之间的时间。 如果你必须填写表格,机器人将比人类更快。

另一种方法是使用robots.txt拒绝访问此页面。 每个主要的机器人都尊重这个文件。

第三种方法是创建访问控制列表(例如会话)并仅向登录的人显示该按钮。

使用JavaScript或类似的按钮是非常不安全的,因为机器人将绕过它(因为机器人通常不解释JavaScript)。 我建议使用虚假表格字段的组合(任何机器人的绊网 - 这些字段中的任何内容都是机器人的确定指标),健全性检查(即内容是否合理),时间戳(任何提交的内容)快速或太慢也表示机器人),MySQL(用于将IP地址和电子邮件地址列入黑名单以及防洪),内容分析,DNSBLs以保留已知垃圾邮件发送者的IP地址,以及(可选)甚至验证电子邮件。 这样可以阻止任何机器人,即使避免了特定阶段的陷阱,也会有其他陷阱触发。

此外,您可以主动编辑垃圾邮件单词列表,以便在您避免早期陷阱(需要记录任何传入的邮件)时加强您的防御。

这避免了使用经常无法正确解密的Captcha,再加上application / xhtmlapplication / xhtml + xml ,由于XHTML DOM的特殊性,它无法实现。 其他方法独立于所使用的标记语言类型,加上整个事物保持无障碍。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM