Norbert Kölln: Fehlende CGI-Umgebungsvariable HTTP_REFERER

Beitrag lesen

Moin, moin!

Ich frage in einem Perl-Script u. a. die oben genannte Variable ab. In geschätzten 5% aller Fälle erhalte ich dabei einen leeren String. Um dem Rätsel auf die Spur zu kommen, lasse ich mir dann mit foreach(keys(%ENV)) alle CGI-Umgebungsvariablen ausgeben. Das Ergebnis ist durchaus unterschiedlich, obwohl das Script ja immer auf dem gleichen Server läuft. Und dort wechselt weder der installierte Web-Server, noch das Betriebssystem häufiger. Auch mein Script pfuscht nicht an den Umgebungsvariablen herum.

Wie also kann es kommen, daß die Liste der Umgebungsvariablen in Fehlerfällen beispielsweise mal so

QUERY_STRING=
SERVER_ADDR=xxx
CONTENT_TYPE=application/x-www-form-urlencoded
HTTP________________=~~~~~ ~~~~~~~
HTTP_ACCEPT_LANGUAGE=de
SERVER_PROTOCOL=HTTP/1.1
TZ=MET
HTTP_CONNECTION=Keep-Alive
REMOTE_PORT=xxx
HTTP_USER_AGENT=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
HTTP_ACCEPT=*/*
GATEWAY_INTERFACE=CGI/1.1
HTTP_HOST=xxx
SERVER_SOFTWARE=Apache
SERVER_ADMIN=xxx
REMOTE_ADDR=xxx
SCRIPT_NAME=xxx
HTTP________=:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SERVER_NAME=xxx
DOCUMENT_ROOT=xxx
REQUEST_URI=xxx
UNIQUE_ID=xxx
REQUEST_METHOD=POST
CONTENT_LENGTH=6
SCRIPT_FILENAME=xxx
PATH=/usr/local/bin:/usr/bin:/bin
SERVER_PORT=80
HTTP_CACHE_CONTROL=no-cache

und mal so

QUERY_STRING=
SERVER_ADDR=xxx
HTTP_ACCEPT_LANGUAGE=de
SERVER_PROTOCOL=HTTP/1.1
TZ=MET
HTTP_CONNECTION=Keep-Alive
REMOTE_PORT=xxx
HTTP_ACCEPT=image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/msword, application/x-shockwave-flash, application/vnd.ms-powerpoint, */*
HTTP_USER_AGENT=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)
GATEWAY_INTERFACE=CGI/1.1
HTTP_HOST=xxx
SERVER_SOFTWARE=Apache
SERVER_ADMIN=xxx
REMOTE_ADDR=xxx
SCRIPT_NAME=xxx
HTTP_ACCEPT_ENCODING=gzip, deflate
SERVER_NAME=xxx
DOCUMENT_ROOT=xxx
UNIQUE_ID=xxx
REQUEST_METHOD=GET
SCRIPT_FILENAME=xxx
PATH=/usr/local/bin:/usr/bin:/bin
SERVER_PORT=80

aussieht? Reale Daten habe ich zum Teil durch "xxx" ersetzt.

Insbesondere irritieren mich im ersten Beispiel Variabele / Werte wie
HTTP________________=~~~~~ ~~~~~~~.

Norbert