previous up contents next

Authentifizierung mit PHP4

Zur Beschränkung des Zugriffs auf gewisse Seiten kann PHP ebenfalls eingesetzt werden. Diese Art der Authentifizierung funktioniert jedoch nur, falls PHP als Modul im Web-Server eingebunden ist. In der CGI-Version ist diese Funktion nicht möglich, und es muß auf proprietäre Verfahren, z.B. über HTML-Formulare oder den Zugriffsschutz des Web-Servers, ausgewichen werden.
Die von PHP angebotene Authentifizierungsmöglichkeit imitiert im Grunde genommen die eines Web-Servers, durch Senden eines bestimmten Header5an den Browser (siehe Listing [*]).

\lstinputlisting[caption={Authentifizierung mit PHP
}]{include/xmpl_auth.php} Authentifizierung mit PHP

Empfängt der Browser diesen Header, so öffnet er ein Eingabefeld (Erscheinungsbild ist dabei Betriebssystemabhängig), in dem der User seinen Login und sein Passwort eintragen kann. Bestätigt der Benutzer seine Angaben, so wird das Skript, das den Header ausgegeben hatte, erneut aufgerufen. Nun allerdings sind die Variablen PHP_AUTH_USER, PHP_AUTH_PW und PHP_AUTH_TYPE mit Werten belegt. Diese können dazu verwendet werden, einen Abgleich gegen eine Datenbank durchzuführen. Anders als bei einer Web-Server-Lösung, ist dabei zu beachten, daß die Authentifizierung mit PHP auf der Basis nur einer Seite besteht, wohingegen der Server auch Zugriffsrechte auf ganze Directories abdecken kann. Deshalb ist es notwendig, z.B. nach einem Redirect weiterhin zu prüfen, ob der User auch auf diese Seite Zugriffsrechte besitzt, um einem direkten Zugriff auf den Inhalt zu vermeiden. Um einen User auszuloggen, d.h. sein Passwort und den Usernamen ungültig zu machen, wird wiederum ein Header an den Browser gesendet: header( "HTTP/1.0 401 Unauthorized");. Dadurch werden User-Namen und Passwort im Browser ungültig und beim nächsten Zugriff wird erneut eine Authentifizierung gefordert.


previous up next
Rene Morschhauser 2002-02-03