google-chrome - 调用 CGI 脚本时,未知用户代理在几秒钟后在 Chrome 和 Firefox 中生成重复的 GET 请求

标签 google-chrome firefox cgi

当我使用 Chrome 或 Firefox 调用 CGI 脚本(GET 请求)时,我在 Apache 访问日志中注意到几秒钟后生成了一个 HEAD 请求和一个具有相同 URI 的 GET 请求。为了确保这不是我的 Apache 设置的特殊性,我编写了一个简单的 Perl 脚本并将其安装在我的 ISP 网站上。这个脚本只是在每次调用它的时间、URI、用户代理、远程地址和端口时将它自己的日志记录到磁盘文件中:

#!/usr/bin/perl -wT
use strict;
use CGI;

my $cgi = new CGI;
print $cgi->header(-type=>'text/plain', -expires=>'-1d');
print "hello";

open (LOG, ">>printenv2.txt");
my ($sec, $min, $hr, $day, $mon, $year) = localtime;
my $timestamp = sprintf("%02d/%02d/%04d %02d:%02d:%02d", $mon + 1, $day, 1900 + $year, $hr, $min, $sec);
print LOG $timestamp, "\n";
my @keys = qw(REQUEST_METHOD REQUEST_URI HTTP_USER_AGENT REMOTE_ADDR REMOTE_PORT);
foreach (@keys) {
    print LOG "$_ = $ENV{$_}\n";
}
print LOG "\n";
close LOG;

我用 http://localhost/friends/forms/cgi/printenv2.cgi?arg=1 调用了一次脚本

该脚本运行了 3 次,但是,最后两次运行发生在我初始调用后 14 秒以上。这是日志的输出:
09/11/2015 19:25:26
REQUEST_METHOD = GET
REQUEST_URI = /friends/forms/cgi/printenv2.cgi?arg=1
HTTP_USER_AGENT = Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36
REMOTE_ADDR = 127.0.0.1
REMOTE_PORT = 58421

09/11/2015 19:25:40
REQUEST_METHOD = HEAD
REQUEST_URI = /friends/forms/cgi/printenv2.cgi?arg=1
HTTP_USER_AGENT = Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20150101 Firefox/20.0 (Chrome)
REMOTE_ADDR = 127.0.0.1
REMOTE_PORT = 58428

09/11/2015 19:25:41
REQUEST_METHOD = GET
REQUEST_URI = /friends/forms/cgi/printenv2.cgi?arg=1
HTTP_USER_AGENT = Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20150101 Firefox/20.0 (Chrome)
REMOTE_ADDR = 127.0.0.1
REMOTE_PORT = 58440

如您所见,与两个虚假调用相关的用户代理是不同的。我运行 SpyHunter 以查看我是否感染了病毒。我尝试禁用所有扩展。我尝试卸载并重新安装 Chrome。没有任何帮助。这仅在 Chrome 和 Firefox 中发生 - 问题不会在 Internet Explorer 中出现。

帮助!

最佳答案

我曾尝试对完整的用户代理字符串进行搜索,但一无所获。但我现在决定再试一次,只搜索“Gecko/20150101”并在以下位置找到了一篇文章:https://www.quppa.net/blog/2015/07/26/realplayerrealdownloader-poses-as-firefox-running-on-64-bit-linux-and-sends-head-and-get-requests/

我安装了最新版本的 RealPlayer(现在称为 RealTimes)并且它安装了 Video Downloader。这不是在 Chrome 和 Firefox 中作为扩展安装,而是作为单独的进程运行。我禁用了这个“插件”,现在虚假的 HEAD 和 GET 请求似乎已经消失了。他们到底在想什么?

关于google-chrome - 调用 CGI 脚本时,未知用户代理在几秒钟后在 Chrome 和 Firefox 中生成重复的 GET 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32533590/

相关文章:

javascript - jQuery 动画在 Firefox 中断断续续

Django 和 Couchdb : How to deploy without Apache server

perl - 为什么 CGI::Session new 和加载失败(无法解冻())?

css - 输入 "No file chosen"标题的 Chrome CSS 问题不是继承填充?

javascript - HTML 5 的 BlobBuilder() 是否仍然可以在 Google Chrome 中运行?

css - 我的@media 打印不能在 Firefox 中正确显示?

javascript - CGI如何识别编译器?

css - 在我重新设计时无法让 iFrame 在 Internet Explorer 中工作

javascript - Highcharts 渲染器 x 和 y 在 Firefox 与 Chrome 上不同

CSS:将溢出元素变成新行