php - 如何从 php 中的用户代理字符串检测浏览器欺骗和机器人

标签 php user-agent bots spoof

到目前为止,我能够通过将这些字符串与已知的用户代理匹配来从用户代理字符串列表中检测到机器人,但我想知道还有哪些其他方法可以使用 php 来执行此操作,因为我检索到的机器人比预期的要少这种方法。

我也在寻找如何检测浏览器或机器人是否在使用用户代理字符串欺骗另一个浏览器。

如有任何建议,我们将不胜感激。

编辑:这必须使用包含以下行的日志文件来完成:

129.173.129.168 - - [11/Oct/2011:00:00:05 -0300] "GET/cams/uni_ave2.jpg?time=1318302291289 HTTP/1.1"200 20240 "http://faculty.dentistry. dal.ca/loanertracker/webcam.html""Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en-US; rv:1.9.2.23) Gecko/20110920 Firefox/3.6.23"

这意味着除了访问时间之外,我无法检查用户行为。

最佳答案

除了过滤用户代理字符串中的关键字外,我还幸运地在所有页面上放置了一个隐藏的蜜 jar 链接:

<a style="display:none" href="autocatch.php">A</a>

然后在“autocatch.php”中将 session (或 IP 地址)记录为机器人。这个链接对用户是不可见的,但它的隐藏特性希望机器人不会意识到。取出样式属性并将其放入 CSS 文件中可能会有更多帮助。

关于php - 如何从 php 中的用户代理字符串检测浏览器欺骗和机器人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13372799/

相关文章:

cordova - 我如何在 Cordova 应用程序中设置用户代理

javascript - 有什么方法可以检测用户是否启动了 Microsoft Edge 平板电脑或桌面浏览器?

c# - 如何从bot framework C#中读取附件内容?

botframework - 路易斯 Api 'FewLabels' 问题

php - PHP docker和使用MySQL PDO

php - 如何仅替换捕获的组?

blackberry - Blackberry PlayBook的用户代理是什么?

php - MYSQL/PHP 选择

php - 添加到购物车每个产品的最大数量并在 WooCommerce 中进行验证

python - 如何使用 python 脚本获取谷歌搜索结果提要而不被识别为机器人?