Gdy wywołuję skrypt CGI (żądanie GET) za pomocą przeglądarki Chrome lub Firefox, zauważyłem w dzienniku dostępu Apache, że całkiem kilka sekund później wygenerowano żądanie HEAD i żądanie GET z tym samym identyfikatorem URI. Aby upewnić się, że nie była to szczególna cecha mojej instalacji Apache, napisałem prosty skrypt Perla i zainstalowałem go na mojej stronie internetowej ISP. Ten skrypt po prostu robi swoje własne rejestrowanie do pliku na dysku za każdym razem, gdy jest wywoływana w czasie URI, agent użytkownika, zdalnego adresu i portu:Powtórzone żądania GET są generowane kilka sekund później w przeglądarce Chrome i Firefox przez nieznanego użytkownika podczas wywoływania skryptu CGI.
#!/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;
I wywołany skrypt raz http://localhost/friends/forms/cgi/printenv2.cgi?arg=1
Skrypt był uruchamiany trzy razy, jednak ostatnie dwa uruchomienia wystąpiły ponad 14 sekund po moim pierwszym wywołaniu. Oto dane wyjściowe dziennika:
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
Jak widać, agent użytkownika powiązany z dwiema fałszywymi inwokacjami jest inny. Uruchomiłem SpyHunter, aby sprawdzić, czy mam wirusa. Próbowałem wyłączyć wszystkie rozszerzenia. Próbowałem odinstalować i ponownie zainstalować Chrome. Nic nie pomaga. Dzieje się tak tylko w przeglądarkach Chrome i Firefox - problem nie pojawia się w Internet Explorerze.
POMOC!
Dziękujemy! Ty pośrednio mi pomogłeś. Moja strona została uduszona tymi powielonymi żądaniami. Widząc, że ciąg znaków UA jest prawie niemożliwy do znalezienia na wolności (Firefox * i * Chrome?) Po prostu zbanowałem na poziomie serwera i wszystko wydaje się teraz w porządku :) –
Niedawno pomagałem komuś rozwiązywać problemy z powtarzającymi się blokami przez Apache ModSecurity - RealPlayer wysyłał żądania HEAD i GET na stronę logowania do WordPressa. Wygląda na to, że łączy się z żądaniami internetowymi Google Chrome. Odinstaluj go i dodatkowe żądania zostały zatrzymane. To rozwiązało problem! –
Po prostu tak się stało, było Realtimes –