![]() |
1
8
澄清为什么要排除机器人程序,以及对错误分类的容忍程度。 也就是说,你是否必须排除每一个机器人,以牺牲对待真正的用户像机器人一样?或者,如果机器人爬行你的网站,只要他们没有影响性能,可以吗? 排除所有机器人程序的唯一方法是关闭网站。恶意用户可以将其bot分发给足够多的计算机,使您无法将其流量与真实用户区分开来。javascript和css之类的技巧无法阻止确定的攻击者。 如果一个“快乐的媒体”是令人满意的,一个可能有用的技巧是用css隐藏链接,这样用户在浏览器中看不到它们,但它们仍然在html中。任何跟踪这些“毒药”链接的代理都是机器人。 |
![]() |
2
8
用户代理可以被伪造。机长被破解了。有效的cookies可以通过页面请求发送回服务器。合法程序(如Adobe Acrobat Pro)可以在一个会话中进入并下载网站。用户可以禁用javascript。由于没有“正常”用户行为的标准度量,因此无法将其与bot区分开来。 换言之:这离不开把用户拉到某种形式的互动聊天中,希望他们通过图灵测试,然后,他们也可以成为一个非常好的机器人。 |
![]() |
3
3
有个主意: 大多数机器人程序不下载css、javascript和图像。他们只是解析html。 如果您可以在用户会话中跟踪他们是否下载了以上所有内容,例如通过记录尝试的脚本路由所有下载请求,那么您可以快速识别只下载原始HTML的用户(很少有普通用户会这样做)。 |
![]() |
4
2
你说有些用户看起来像机器人没关系,因此, 大多数机器人都不运行javascript。使用javascript对服务器执行类似ajax的调用,将此ip地址标识为nonbot。将其存储一段时间,以将来自此IP的未来连接标识为良好的客户端,并防止进一步浪费JavaScript调用。 |
![]() |
5
2
一个简单的测试是javascript:
not-a-bot.php可以在会话中添加一些内容来标记用户不是bot,然后返回单个像素gif。 url被分解以伪装它。 |
![]() |
6
1
对于服务器上的每个会话,您可以确定用户是否在任何时候单击或键入过快。在给定的重复次数之后,将“isrobot”标志设置为true并保存该会话中的资源。通常你不会告诉用户他已经被机器人检测到了,因为在这种情况下他只是开始一个新的会话。 |
![]() |
7
0
好吧,这真的是为网站的一个特定页面。我们不希望一个机器人提交的表格B/C它混乱的跟踪。老实说,友好的机器人、谷歌、雅虎等都不是问题,因为他们通常不会先填写表格。如果我们怀疑有人是机器人,我们可能会给他们看一张验证码图片或类似的东西…如果他们通过了,他们就不是机器人了,表格会提交… 我听说过把表单放在flash中,或者使用submit javascript,但我更希望不要阻止真正的用户使用这个网站,除非我怀疑他们是个机器人…… |
![]() |
8
0
我认为你检查会话id的想法已经非常有用了。 另一个想法是:您可以检查是否也下载了嵌入式资源。 不加载图像(例如,为了节省时间和带宽)的bot应该与通常将图像嵌入页面的浏览器区分开来。 但是,这样的检查可能不适合作为实时检查,因为您必须分析某种可能会耗费时间的服务器日志。 |
![]() |
9
0
嘿,谢谢你的回复。我认为一些建议的结合会起到很好的作用。主要是隐藏的表单元素乘以表单填写的速度,可能还有“毒药链接”的想法。我认为它将涵盖大部分的基础。当你谈论机器人的时候,你不会找到所有的机器人,所以没有必要认为你会…愚蠢的机器人。 |
|
Arthur Zhang · MessageHandler无法捕获命令 2 年前 |
![]() |
Danve · 我的GupShup机器人迷路了? 7 年前 |
![]() |
MOHW · 如何通过bot在电报中打开“选择组”对话框 7 年前 |
![]() |
Vel murugan · 聊天机器人框架401未授权问题 7 年前 |
![]() |
Chris O · AWS Lex:第一次打开时如何显示欢迎信息? 7 年前 |
![]() |
koolmees · 如何绕过getUpdates限制?(电报机器人) 7 年前 |
|
Ham man · 如何在Python中检查时间[重复] 7 年前 |