Mailinglisten-Archive |
>> 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. Ja, richtig. Aber in diesem Fall muss sich eine "unbefugte" Person am Rechner befinden. Der "trusted"-User hat ja auch die Zugangsdaten und der Cookie wird nach Beendigung des Browsers gelöscht, sofern man die Haltbarkeit entsprechend einstellt hat. Ein Restrisiko bleibt natürlich. >> 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. Ja. Dann könnte aber ein anderes Skript - z.B. das eines anderen Vhosts - theoretisch immer noch auf den Ordner zugreifen. Mit dieser Lösung wäre aber der Zugriff zumindest auf den user des webservers beschränkt (chmod go-rwx) > Die Einwendung des Zugriffs auf dem Weg zwischen Server und Client > gilt für alle ungesicherten Übertragungen also auch für HTTP_AUTH. Ja, richtig. >> 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. schlimmer :) es reicht in den meisten fällen ein "ls /tmp" und dieser ordner ist aufs system bezogen "wordlwide" lesbar. Voraussetzung ist natürlich, dass ein unbefugter User am System angemeldet ist. > 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). Hast du dazu einen Link parat? > So wirst Du eine sichere Authentifizierung Deiner User auch mit > Sessions erreichen. herzlichen dank für dein feedback! gruss, thomas
php::bar PHP Wiki - Listenarchive