REMOTE_USER ist leer
Frank Scharffenberg
- cgi
Hi all!
Das bekannte Problem: REMOTE_USER ist leer. Ich habe natürlich den workaround (http://www.teamone.de/selfaktuell/schroepl02.htm) probiert:
Die HTML-Seite steht in einem geschützen Verzeichnis, von dieser Seite wird das Script aufgerufen. HTTP_REFERER steht richtig, trotzdem ist REMOTE_USER leer. Was nun?
Das bekannte Problem: REMOTE_USER ist leer. Ich habe natürlich den workaround (http://www.teamone.de/selfaktuell/schroepl02.htm) probiert:
Die HTML-Seite steht in einem geschützen Verzeichnis, von dieser Seite wird das Script aufgerufen. HTTP_REFERER steht richtig, trotzdem ist REMOTE_USER leer. Was nun?
Dokumentation des Webservers lesen bzw. ALLE CGI-Variablen ausgeben, die gesetzt sind.
Beispiel: WebSite 1.1 (und auch 2.0, denke ich, denn darauf läuft mein Programm angeblich ...) hält sich nicht an den Standard und nennt diese Variable AUTH_USER. (Ich mußte also bei der koexistenzfähigen Portierung von WebSite nach Apache erst mal $ENV{'SERVER_SOFTWARE'} abfragen - *das* unterstützen zum Glück WebSite *und* Apache!) und dann bedingt auf dessen Inhalt REMOTE_USER (Apache) bzw. AUTH_USER (WebSite) auswerten ... gnlpfts ...
Dokumentation des Webservers lesen bzw. ALLE CGI-Variablen ausgeben, die gesetzt sind.
Ich habe alle Variablen ausgegeben. Hier das Ergebnis, aber eben ohne REMOTE_USER:
SERVER_SOFTWARE : Apache/1.3.6 (Unix)
GATEWAY_INTERFACE : CGI/1.1
DOCUMENT_ROOT : /snafu/www/web/documents
REMOTE_ADDR : 194.138.158.164
SERVER_PROTOCOL : HTTP/1.0
SERVER_SIGNATURE : <ADDRESS>Apache/1.3.6 Server at www.snafu.de Port 80</ADDRESS>
REQUEST_METHOD : GET
HTTP_REFERER : http://www.agapanthus.de/reminder/passwd.html
QUERY_STRING :
HTTP_USER_AGENT : Mozilla/4.5 [en] (WinNT; I)
PATH : /usr/sbin:/usr/bin:/etc:/usr/local/bin:/usr/ccs/bin:/usr/ccs/lib:/opt/SUNWvxva/bin
TZ : MET
HTTP_ACCEPT : image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
HTTP_CONNECTION : keep-alive
REMOTE_PORT : 42355
HTTP_ACCEPT_LANGUAGE : en
HTTP_CACHE_CONTROL : max-age=259200
SCRIPT_NAME : /user-cgi-bin/agapanthus/log_access.pl
SCRIPT_FILENAME : /snafu/www/pub/cgi-bin/agapanthus/log_access.pl
HTTP_ACCEPT_ENCODING : gzip
SERVER_NAME : www.snafu.de
REQUEST_URI : /user-cgi-bin/agapanthus/log_access.pl
HTTP_ACCEPT_CHARSET : iso-8859-1,*,utf-8
HTTP_X_FORWARDED_FOR : unknown
SERVER_PORT : 80
HTTP_HOST : www.snafu.de
HTTP_FORWARDED : by http://proxy.mchh.siemens.de:8080 (Netscape-Proxy/3.52)
SERVER_ADMIN : webmaster@inx.de
HTTP_VIA : 1.0 thunder.mchh.siemens.de:3128 (Squid/2.2.STABLE5)
Muß vielleicht mein Provider an der APACHE-Konfiguration ändern?
Zum Ausprobieren:
http://www.agapanthus.de/reminder/passwd.html
User: remote
Pwd: user
dann log_access.pl (unter online) anklicken (nicht über die script und html-Namen wundern... haben sich mal so ergeben und haben nichts mehr mit der Funktion zu tun...)
Gruß Frank
Ich habe alle Variablen ausgegeben. Hier das Ergebnis, aber eben ohne REMOTE_USER:
SERVER_SOFTWARE : Apache/1.3.6 (Unix)
Oh, wenn es ein Apache ist, dann ist meine Idee natürlich hinfällig.
Aber der REMOTE_USER wird auch wirklich nur dann gesetzt, wenn die URL selbst, auf die gerade zugegriffen wird, geschützt ist.
Ein Schutz nur allein der REFERER-URL reicht dafür nicht aus.
Die HTML-Seite steht in einem geschützen Verzeichnis, von dieser Seite wird das Script aufgerufen. HTTP_REFERER steht richtig, trotzdem ist REMOTE_USER leer. Was nun?
Versuche, das Verzeichnis, in dem das Scriptliegt, ebenfalls zu schützen. Bei mir hatte es nur dann funktioniert... (Apache 1.3.6)
Gruß,
Don