Mailinglisten-Archive |
Hallo Thomas, Am Samstag, 11. Juni 2005 22:39 schrieb tb at media-net.de: > 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 Warum theoretisch. Auch praktisch ganz simpel: sieh einfach nach was als Cookie gespeichert ist. z.B. PHPSESSIONID = acf1232acf... > ermittelt werden kann, sofern diese Zugang zu den Systemen haben. Jeder Benutzer eines Browsers hat Zugriff auf die Cookies, die der Browser gespeichert hat. > > 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. Serverseitig ist das Problem doch leicht zu lesen, indem session.save_path nur durch den Usernamen des Webservers und des Eigentümers lesbar ist. session.save_path kannst Du auch in der Anwendung setzen, sollte aber natürlich außerhalb des DOCUMENT_ROOT-Pfades liegen. Die Einwendung des Zugriffs auf dem Weg zwischen Server und Client gilt für alle ungesicherten Übertragungen also auch für HTTP_AUTH. > > 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. Richtig. Das eigentliche Problem stellt hier die evtl. Möglichkeit dar, dass User auf dem Server die Sessiondateien öffnen und lesen können. Das lässt sich durch oben genanntes Verfahren verhindert werden. Ob jemand das Cookie mit der Session-ID ausliesst spielt keine Rolle, da eine (sehr leicht mögliche Manipulation) der Session-ID nur durch einen sehr, sehr unwahrscheinlichen Zufall eine neue ID hervorzaubert, zu der es eine aktive Session auf dem Server gibt. Achte auf auf die Garbage-Collection, sorge dafür, dass inaktive Sessions nach kurzer Zeit zerstört werden, etc. Achte auch darauf, dass nicht durch XSS-Attacken u.ä. evtl. Sessions Deiner User gestohlen bzw. entführt werden können (Session-Highjacking). So wirst Du eine sichere Authentifizierung Deiner User auch mit Sessions erreichen. CU -thorsten -- Thorsten Körner |e-Commerce-Consulting |Hosting Dannenkoppel 51 |http://www.123tk.de |Software-Entwicklung D-22391 Hamburg |Tel.: 040 / 536 308 27 |Qualtitäts-Sicherung t.koerner at 123tk.de |Fax: 040 / 536 308 26 |Beratung & Schulung
php::bar PHP Wiki - Listenarchive