Eine leere (undefinierte) variable HTTP_HOST kommt immer dann zustande, wenn der Client im Request den Host: Header weglässt. Also z.B. bei HTTP/1.0 requests:
Beispiel für "normalen" HTTP 1.1 request:
Code:
GET /forum.php HTTP/1.1
Host: www.joomlaportal.de
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.9,de-de;q=0.7,de;q=0.6,nl-be;q=0.4,nl;q=0.3,es;q=0.1
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Proxy-Connection: keep-alive
Entsprechener HTTP/1.0 request (bei 1.0 war der Host: header noch nicht allgemein üblich.)
Code:
GET /forum.php HTTP/1.0
Solche requests werden - wenn überhaupt noch - von einfachen crawlern oder sonstigen bots/scripts verwendet. Insofern nichts wirklich schlimmes, es sei denn der bot hämmert den server anderweitig voll.
Noch was zu dem speziellen log:
Da wird ja kein GET request sondern ein CONNECT abgesetzt. Der client probiert also, ob Dein apache ein offenes mod_proxy konfiguriert hat und sich so als proxy verwenden lässt. Sowas kann man ganz simpel abstellen, wenn man in der apache-config generell nur GET und POST zulässt.
Code:
<Limit PUT DELETE CONNECT OPTIONS PATCH PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
Order deny,allow
deny from all
</Limit>
Oder ggf. besser andersrum definiert:
Code:
<LimitExcept GET POST>
Order deny,allow
deny from all
</LimitExcept>
Lesezeichen