phpbar.de logo

Mailinglisten-Archive

[php] Sichere Authentifizierung

[php] Sichere Authentifizierung

tb at media-net.de tb at media-net.de
Sam Jun 11 22:39:35 CEST 2005


Guten Abend,

ich beschäftige mich zur Zeit mit dem Thema User-Authentifizierung
in PHP-Anwendungen (Web-Kontext) und würde sehr gerne Eure Meinung
zu den verschiedenen Möglichkeiten kennen.

Im Moment betrachte ich 2 Methoden:

1.) Auth mit HTML-Formular, DB/Textfile und Session
2.) Auth mit htaccess und HTTP-Header

Für mich sind die Aspekte Sicherheit und Nutzerfreundlichkeit am
wichtigsten. Mit Nutzerfreundlichkeit meine ich in diesem Fall die
Verwendung eines Login-Formulars anstelle der clientseitigen HTTP-
Authenfizierung (per htaccess und Login-Fenster des Clients).

1.) Auth mit HTML-Formular, DB/Textfile und Session

Hier sehe die Schwachstelle, dass die Session-ID sowohl auf dem
Server als auch beim Client theoretisch (!) von unbefugten
ermittelt werden kann, sofern diese Zugang zu den Systemen haben.

Serverseitig reicht dafür ein Lesezugriff auf den Session-Ordner
(session.save_path). Clientseitig könnte die Session bei "--enable-
trans-id" im Quelltext der gerenderten Seite eingesehen werden.
Dazwischen wäre der Zugriff auf die ID ebenfalls möglich, wenn der
Request nicht über eine gesicherte Verbindung erfolgt.

Das Problem der Sichtbarkeit der ID im Filesystem kann man durch
eine Verlagerung des Speicherorts in eine Datebank umgehen. Die
php-Datei mit den DB-Zugangsdaten könnten m.E. mit Zend kompiliert
werden.

2.) Auth mit htaccess und HTTP-Header

Bei der vom Server bereitgestellten Auth-Methode (htaccess und
HTTP-Header) sehe ich eigentlich keine Lücke, sofern der Zugriff
über eine gesicherte Verbindung läuft.

Leider hat man aber hier keine Möglichkeit, die Zugangsdaten über ein
Formular an den Server zu senden. Man muß wohl in diesem Fall immer die
Funktion des Browsers verwenden.

Ich kenne "PHP_AUTH_USER" und möchte es in diesem Vergleich nicht
betrachten, da es m.E. in erster Linie die Produktion vereinfachen
soll und als Zwitter zwischen den beiden Methoden einen recht
wackeligen Eindruck auf mich macht.

Tja... 

nun würde ich gerne Eure Meinungen zu den beiden Methoden kennen und
wissen, wie Ihr das Thema behandelt und ein Maximum an Sicherheit bei
der Authentifizierung erreicht.

Herzliche Grüße, 
Thomas 



php::bar PHP Wiki   -   Listenarchive