| | | | |
| |||||||
| PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |||
| Gast
Beiträge: n/a
| Zitat:
Zitat:
| ||
|
| | ||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | @axo Die session_regenerate_id() sollte im Hinblick auf Session Fixation verwendet werden. Die Umgebung soll verschiedene User-Stati verwenden, 'public-Modus' um anwendungsspezifische Steuerdaten zu speichern (ohne jegliche Sicherheitsrelevanz, ohne Bindung an Usernamen und dergleichen), 'private' um eingeschränkte Nutzerbereiche zu definieren. Selbige sind nur für einen bestimmten UserStatus (in Session gespeichert) sichtbar (Vergabe erfolgt durch DB-Anfrage während des Logins), die eigentliche Authentifizierung erfolgt bei Aufruf dann über einen Datenbank-Abgleich (Status-zu-Useridentität), die dazu ebenfalls in der Session ID gespeicherte md5's von UserName und UserPasswd übermittelt bekommt. Als Restrisiko verbleiben die Klartext-Datenübertragung aus dem Loginformular und evl. Sessiondiebstahl/Bruteforceing. Die eigentliche Gefahr liegt in der Statusänderung. Da jedermann eine public Session zugewiesen bekommt, könnte er sie (während er die Session am Leben hält) einem Nutzer unterschieben und durch dessen Anmeldung einen höheren Nutzerstatus erreichen, die betr. SessionID ist ihm ja bekannt. Sicher wäre es genauso möglich getrennte Speicherbereiche dür die SessionIDs zu benutzen, ich hielt session_regenerate_id () für die elegantere Methode. Zitat:
@karl-150 Danke für den Link, werde mich in ner ruhigen Minute mal damit befassen... --n | |
| | |
| | |||||
| Erfahrener Benutzer | Zitat:
Zitat:
Zitat:
Zitat:
__________________ Nicht jeder Fehler ist ein Bug. | ||||
| | |
| | ||
| Erfahrener Benutzer Registriert seit: 13.11.2005
Beiträge: 2.583
![]() | Zitat:
| |
| | |
| | ||
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
| |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse: Fortgeschritten ![]() | Hi. session_regenerate_id() sollte bei jedem Neustart einer Session und be jedem Statuswechsel des Benutzers durchgeführt werden. Du könntest die Funktion natürlich von Hand nachbauen, denn die Session-Dateien sind ja les- und schreibbar (und umbenennbar - aber erst Link setzen, um Race Conditions auszuschließen). Aber eigentlich sollte es doch reichen, wenn du $_SESSION leerst und dann session_regenerate_id() ohne den zweiten Parameter aufrufst. Zumindest kannst du das ja leicht testen, ob die alte Session-Datei dann auch wirklich leer ist. Und der Keks wird ja überschrieben. Basti |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 24.12.2004
Beiträge: 1.814
![]() | ich sehe den sinn dahinter immer nicht. $_SESSION = array(); reicht, um einen kompletten statuswechsel zu generieren - je nachdem wie der rest des codes aussieht. da kann jemand die session klauen, wie sie lustig ist. ne, leuchtet mir noch nicht ein. |
| | |
| | ||
| Erfahrener Benutzer Registriert seit: 13.11.2005
Beiträge: 2.583
![]() | Nimm an, jemand baut auf seiner Seite einen Link zu deiner Seite ein, generiert aber vorher eine Sessionid (meinetwegen 123456), die er dem Link mitgibt und loggt diese Sessionid mit. Nachdem du dich nun auf deiner Seite eingeloggt hast, kann der Angreifer deine Session einfach übernehmen, da ihm die Sessionid ja bereits bekannt ist. Zitat:
PHP-Code: | |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] Session Problem | karina_02 | PHP Tipps 2008 | 6 | 18.05.2008 22:37 |
| Session Variablen als Referenz!? O_o | Sam781 | PHP-Fortgeschrittene | 4 | 01.10.2007 11:19 |
| Problem bei session Lifetime | Cyberbob_at_tot | PHP Tipps 2007 | 5 | 05.06.2007 17:47 |
| Session in Session | tinchen | PHP Tipps 2007 | 22 | 21.03.2007 19:53 |
| session nach seitenwechsel leer... | GELight | PHP Tipps 2006 | 8 | 17.09.2006 15:17 |
| Session Logout Login Navigation | TailerD | PHP Tipps 2006 | 10 | 24.06.2006 17:12 |
| [Erledigt] php session problem :( | PHP Tipps 2005-2 | 5 | 21.10.2005 16:37 | |
| Session wird nicht angelegt | PHP Tipps 2005-2 | 7 | 24.07.2005 13:35 | |
| Kreieren einer Session | PHP Tipps 2005 | 11 | 28.05.2005 15:16 | |
| Session error nach Umstellung auf PHP 5 | PHP Tipps 2005 | 15 | 13.05.2005 14:35 | |
| verliere Session | Sonja | PHP Tipps 2005 | 3 | 27.04.2005 09:32 |
| Session Problem | PHP-Fortgeschrittene | 3 | 18.02.2005 14:37 | |
| [Erledigt] Formulardaten in einer Session speichern, per Link übergeben | PHP Tipps 2004-2 | 2 | 29.12.2004 15:47 | |
| [Erledigt] Hilfe...PhpBB Session Problem!! | PHP Tipps 2004-2 | 2 | 15.12.2004 18:28 | |
| $_GET und Session | PHP Tipps 2004 | 9 | 20.06.2004 19:17 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| session id generieren, eigene session id, php eigene session id, php eigene session, php session diebstahl, eigene session, http://www.php.de/php-fortgeschrittene/41245-php-eigene-session-id-generierung.html, session_id setzen, session diebstahl, php session id generieren, php session sess_, php session oder eigene session, php sichere session id generieren, eigene session variable, sichere session id generieren, session id generieren php, session id wiederherstellen, eigene session php, warum eigene session id, php session id sicherheit |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.