Andreas Korthaus: Übergabe der Session ID???

Beitrag lesen

Hallo!

ich frage mich, warum Andreas nicht gleich geantwortet hat. Könnt Ihr mir das sagen? In so ein paar Zeilen kann man auch nicht auf alle seine Einwände eingehen. Dafür braucht es eine Doku von ca. 150 Seiten. Die ist ja hoffentlich bald fertig.

Sorry, aber ich frage mich manchmal auch wie man aus der Sache so eine Wissenschaft machen kann!

oder steht $_SESSION erst nach session_start() zur Verfügung? Aber die Prüfung bringt IMHO eh nicht viel, da man so sehr leicht an eine Session kommt.

@ Andreas: Nun bring die Leute hier nicht durcheinander!

sorry, kam daher das ich so eine Authentifizierung immer etwas anders implementiere, mir geht es weniger um eine Überprüfung ob Session vorhanden, mehr darum die Zusgangdaten in der Session jedesmal zu prüfen. Ich speicher bei erfolgreichem löogin die ZTugangdatenm ind er Session und vergleiche dann immer mit Einträgen in DB oder Flat-Files.

PS: wenn Du den Namen brauchst nimm doch einfach session_name(), das gibt den aktuellen Namen zurück, also normalerweise PHPSESSID.
Liebe Grüße aus http://www.braunschweig.de

@ Andreas: Auch der letzte Satz sollte besser gelöscht werden.

warum?

Das Array mit den Sessionvariablen, dass entweder $HTTP_SESSION_VARS oder in der neuesten PHP-Version (die dazwischen liefen nicht sauber) heißt, steht selbstverständlich erst nach dem Einschalten des Session-Mechainsmus zur Verfügung. Wenn man den nun mit session_start() startet, und nicht automatisch durch Änderung der Voreinstellung in der php.ini, dann werden die gespeicherten Variablen aus der Session-Datei im tmp-Verzeichnis eben genau in diesem Moment zurückgeholt. Vorher sind sie nicht zur Verfügung.

Um nun zu wissen, ob eine Atuhentifizierung des Clients via Session vorliegt, muss man erst nach dem Vorhandensein der Sessionnummer fragen.

Ich kenne ja nicht Deine komplette authentifizierung, ich wollte nur drauf hinweisen dass eine Prüfung ob der Client einen Cookie mit Namen der Session einen 32 Zeichen langen String sendet nicht wirklich sicher ist. Man sollte mindestens noch pprüfen ob die Session überhaupt auf dem Server vorhanden ist, oder besser noch den Benutzernamen und Passwort in der Session speichern und diese überprüfen, auch wenn das prinzipiell durch eine sehr durchdachte Vergabe der Sessions eigentlich nicht notwendig wäre, aber vielleicht hat man doch nicht an alles gedacht.

Dafür wird der Sessionname benötigt. Der Standardname PHPSESSID ist ebenfalls in der php.ini eingestellt, kann aber durch session_name(ANDERER_NAME) überschrieben werden. ANDERER_NAME sollte man sich als Konstante deklarieren. Alternativ kann man auch in der php.ini oder in den Virtual Hosts oder in einer .htaccess den Namen ändern.

(wenn man die Modul-Version installiert hat)

Unter diesem Namen sucht PHP dann die Variable mit der Länge von 32Byte (md5-codiert) in den Session-Cookies, den Get-Variablen und den Post-Variablen.

(und den Cookie-Variablen, oder?)

Verstehe mich bitte nicht falsch aber ich darf doch wohl noch meine Meinung dazu sagen! Und die Session umzubenennen halte ich auch für Sinnvoll, aber nur aus dem einzigen Grund das die potentiellen Angreifer dann noch eine Unbekannte mehr haben, oder ich PHP komplett verbergen will.

Viele Grüße
Andreas