Screen2.0

 
 
 

archive // 2005.11.03 08:59:44 [hh]

Web-Seiten mit Login: Authentifizierung mit PHP

Grundlegende Absicherung von bestimmten Teilen einer Web-Site (z. B. Administrations-Seiten zum Einfügen, Ändern und Löschen von Daten) gehört zu den häufigsten Problemen bei der Erstellung größerer Sites. Screen2.0 diskutiert die gängigsten Lösungen für PHP.

Gängigste Lösung ist die Verwendung von HTTP-Basic Authentifizierung, die von Web-Servern wie "Apache" 'serienmäßig' angeboten wird. Soll das Login allerdings nicht statisch in einem speziellen File (".htaccess") gespeichert sein, sondern zum Beispiel aus der Datenbank kommen, dann wird es allerdings schwieriger.

Soll die Lösung dann auch noch auf CGI-Installationen von PHP laufen und nicht nur als eincompiliertes Apache-Modul, dann fällt HTTP-Auth leider aus. Dazu die entsprechende Passage aus php.net:

Die HTTP-Authentifizierung durch PHP ist nur verfügbar, wenn PHP als Apache-Modul läuft und funktioniert daher nicht mit der CGI-Version. In einem PHP-Skript für ein Apache-Modul kann man die Funktion header() benutzen, um die Nachricht "Authentifizierung notwendig" an den Client-Browser zu senden, damit dieser ein Fenster zur Eingabe von Benutzername/Passwort öffnet. Hat der Benutzer diese eingegeben, wird die URL des PHP-Scripts mit den Variablen , und , die den jeweiligen Benutzernamen, das Passwort und den Typ der Identifizierung enthalten, erneut aufgerufen. Momentan wird nur das Authentifizierungsmodell "basic" unterstützt. Näheres hierzu bei der header() Funktion.

In diesem Falle empfiehlt sich die gute alte Session-basierte Authentifizierung, bei der in einer Session-Variable gespeichert wird, ob bereits ein erfolgreiches Login durchgführt wurde oder nicht. Bibliotheken wie etwa "PHPLib" bieten hierfür eine Lösung als Klasse an.

 

Werbung