HTTP-Authentifizierung

Unter Nutzung der Header-Parameter lässt sich mit Hilfe der Browserfunktionalität zum Login eines Nutzers eine Authentifizierung des Benutzers durchführen. Hierfür werden an den Browser das Headerfeld WWW-Authenticate: Basic realm="Bezeichnung des Bereiches" zusammen mit dem Headerfeld HTTP/1.0 401 Unauthorized gesendet. Der Browser zeigt daraufhin ein Login-Fenster an. Findet ein Login statt, so schreibt PHP in das Feld $_SERVER['PHP_AUTH_USER'] den eingegebenen Benutzernamen und in das Feld $_SERVER['PHP_AUTH_PW'] das eingegebene Passwort. Eine Authentifizierung kann wie folgt aussehen:

Auch der Apache-Webserver sowie andere Webserver verfügen über die Möglichkeiten, eine Authentifizierung des Benutzers durchzuführen. PHP interagiert mit diesen über die Variable AUTH_TYPE.

Der Schwachpunkt der Basic Authentifizierung, welche oben gezeigt ist, ist, dass des Passwort im Klartext mitgeschickt wird. Horcht ein Angreifer auf der Leitung mit, so kann er das Passwort damit mitlesen. Mit PHP ist es möglich, die Digest-Authentifizierung durchzuführen. Dieses erweiterte Verfahren sendet einen zufälligen Schlüssel an den Browser, mit dem der Browser das Passwort hasht. Somit wird das Passwort niemals über die Leitung transportiert, sondern ein einmaliges automatisch generiertes Passwort verwendet. Sicherheitskritische Anwendungen sollten entweder die Basic-Authentifizierung über eine SSL-verschlüsselte Verbindung nutzen oder die Digest-Authentifizierung implementieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert