Henryk Plötz: wie komme ich an user und pw nach 401???

Beitrag lesen

Moin

Okay, PHP möchte verhindern, daß man ein Passwort versehentlich irgendwohin ausgibt.

Nicht "versehentlich". Es soll verhindert werden dass ein Passwortgeschützter Bereich irgendwo existiert (mit einweg-gehashtem Passwort) und ein böser Bube da ein PHP-Skript reinsetzt dass Passwörter mitloggt.

Was aber hat das damit zu tun, die Benutzerkennung zugänglich zu machen?

Die Benutzerkennung wird nicht unzugänglich gemacht. Es stehen lediglich die Variablen $PHP_AUTH_USER und $PHP_AUTH_PW nicht zur Verfügung (die ja eigentlich nur zusammen einen Sinn haben).

Denn nur um diese Informationgeht es ja gerade.

Wie gesagt, $REMOTE_USER bleibt dir erhalten

Eine Variable mit dem via HTTP-Authentication übertragenen Passwort kann PHP doch
ohnehin nicht anbieten, weil ggf. nicht mal der Webserver weiß, welches Passwort
er da gerade empfangen hat (siehe mein vorheriges Posting).

Das habe ich schon im vorherigen Posting nicht verstanden: Der Webserver empfängt ein Passwort (BASE64-enkodiert) und kennt es dann nicht mehr?

Also:
Normaler Ablauf ohne externe Authentifizierung: mit PHP: Der Webserver empfängt Passwort und Benutzername base64-codiert, dekodiert sie und wurschtelt sie auseinander. Der PHP-Interpreter läuft an und holt sich das Passwort und den Benutzernamen beim Webserver ab. Der Benutzername landet in $REMOTE_USER und $PHP_AUTH_USER und das Passwort in $PHP_AUTH_PW.
mit CGI/Perl: Wahrscheinlich ähnlich, bloss das die Informationen im Environment rumliegen?

Mit externer Authentifizierung: mit PHP: Der Webserver empfängt Passwort und Benutzername, dekodiert sie, entwurschtelt sie und überprüft ob der Zugriff gewährt wird. Wenn der Zugriff gewährt wurde, zum Beispiel auf ein PHP-Skript, dann springt der PHP-Interpreter an und kriegt jetzt das Passwort _nicht_ vom Server, da die Authentifikation ja schon vorbei ist und es keinen vernünftigen Grund mehr gibt, das Passwort irgendwo hin weiterzugeben. Der Benutzername landet weiterhin in $REMOTE_USER. Das selbe sollte passieren wenn ein PHP-Skript als 401 Dokument aufgerufen wurde.
mit CGI/Perl: hmm? Ich hoffe stark das Passwort wird auch hier nicht von Webserver rausgegeben.

--
Henryk Plötz
Grüße aus Berlin