| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Benutzer Registriert seit: 26.04.2007
Beiträge: 33
PHP-Kenntnisse: Anfänger ![]() | Ich denke, ich habe jetzt die Erklärung (aber leider keine Lösung..) Nochmal kurz zum Problem: Ich hatte bemerkt, dass bei einigen Usern immer ein automatischer Logout nach einer Header-Weiterleitung stattfindet. Die Login-Daten wurden hierbei als Cookie übergeben, wurden aber anscheinend nicht ausgelesen. Ich bin dann auf Sessions umgestiegen, inkl. Weitergabe der SID in der URL. Aber auch hier wurde die SID nicht berücksichtigt, stattdessen wurde eine neue erstellt. Kurioserweise tauchte die alte SID später z.T. wieder auf (s.o.). Erklärung: Es kann eigentlich nur so sein, dass der Server nach der Header-Weiterleitung den Browser/Computer des Users aus irgendeinem Grund nicht mehr korrekt identifizieren kann. Für den Server war der User somit neu; Cookies wurden nicht mehr zugeordnet, es wurde eine neue SID vergeben. Wenn der Browser sich dann später wieder richtig "ausweist", wird auch wieder die alte SID verwendet. Frage: Ist das Problem mit der Weiterleitung irgendjemandem bekannt. Lässt sich das evtl. lösen, indem man bei der Weiterl. irgendwelche Header-Daten mit übergibt. Mein Server hat das Suhosin Sicherheits-Patch phpinfo(). Ich vermute stark, dass es damit etwas zu tun hat. Hat jemand eine Idee, welchen Wert man dort ändern könnte, um das Problem zu lösen (Ich kann die php.ini nicht selbst ändern, der Greatnet-Support hilft da aber weiter, nur wäre es da natürlich gut zu wissen, was ich denen sagen soll...) Vielen Dank! |
| |
| | |
| Erfahrener Benutzer Registriert seit: 25.09.2009
Beiträge: 2.115
PHP-Kenntnisse: Fortgeschritten ![]() ![]() | hm.. nach dem login , benutzer daten in session speichern ist logisch.. aber danach? session_control.php? wozu soll es gut sein die session in variable zu speichern und dann mit dieser variable weiter arbeiten? wieso nicht gleich? PHP-Code: PHP-Code: PHP-Code: |
| |
| | ||
| Benutzer Registriert seit: 26.04.2007
Beiträge: 33
PHP-Kenntnisse: Anfänger ![]() | Zitat:
Der Fehler muss irgendwo in der Kommunikation Server/Browser liegen. Und da tippe ich stark auf Suhosin. in der includierten Datei session_control.php | |
| |
| | |||||||
| Moderator¹ Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Solche Probleme, die „nur manchmal auftreten“, sind immer schwer zu analysieren. Allerdings kann man an sowas m.E. auch nicht rangehen, in dem man nur sagt, „bei manchen Usern tritt das auf“ - da muss man die Umstände schon etwas genauer betrachten: Welche(n) Browser nutzen die, gibt's irgendwelche Firewalls etc., die mit reinspielen könnten, etc. Zitat:
Zitat:
Zitat:
Btw., Cookies ordnet nicht der Server irgendeinem Client zu. Cookies sendet der Client, wenn er sie akzeptiert hat, beim nächsten Request einfach wieder mit, sofern die Bedingungen stimmen (Domain, ggf. Path). Zitat:
Exlizite Weitergabe der SID im URL hat dann aber meist, soweit ich mich erinnern kann, das Problem lösen können. Zitat:
Wenn du schon die Session-ID explizit per GET mit übergibst, und das zu dem Zeitpunkt auch die richtige ist - dann sollte das eigentlich ausreichen, um auf der Zielseite der Weiterleitung dann auch ganz sicher Zugriff auf die SID zu haben. Problematisch könnte es dann höchstens sein, wenn der Client zusätzlich zur SID im Querystring auch noch eine per Cookie mitschickt, und die voneinander abweichen. Dann kommt ggf. noch die Reihenfolge zum tragen, in der GET- und COOKIE-Parameter ausgewertet werden. Aber auch dann müsste vorher schon ein Fehler in deiner Applikation passiert sein, sonst dürfte es auch an dieser Stelle keine zwei SIDs geben. Zitat:
Gibt es vielleicht die Möglichkeit, suhosin ein Logfile schreiben zu lassen, wenn es aus irgendeinem Grund bspw. einen per Cookie übermittelten Wert ablehnt/ausfiltert?
__________________ RGB is totally confusing - I mean, at least #C0FFEE should be brown, right? | ||||||
| |
| | |||||||
| Benutzer Registriert seit: 26.04.2007
Beiträge: 33
PHP-Kenntnisse: Anfänger ![]() | Zitat:
Ganz am Anfang lief der Login nur über Cookies. Erst später bin ich auf Sessions umgestiegen, um die SID per GET zu übergeben - das war jetzt nur ein Ausflug in die Historie, wie ich den Fehler entdeckt habe. Zitat:
Zitat:
Zitat:
ich hatte in verschiedenen Scripts gesehen, dass vor der Weiterleitung noch andere Header gesendet wurden, die ich z.T. nicht verstanden habe (z.B. sowas: header('Status: 303 See Other'); ). Da dachte ich, dass evtl. noch Header-Daten fehlen könnten, womit sich der Browser authentifiziert. Zitat:
Nur wenn irgendwo mal eine Header-Weiterleitung dazwischen ist, tritt bei einigen Usern dieser Fehler auf. Dass die SID vom Client nicht mitgesendet wurde, kann ich durch die Übergabe per URL ausschließen. Somit bleibt m.E. nur die Erklärung, dass der Server sich aus irgendeinem Grund "weigert", die SID zu verarbeiten. Und da kommt evtl. Suhosin ins Spiel.... Zitat:
Danke für die ausführliche Antwort! | ||||||
| |
| | ||||||
| Moderator¹ Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Zitat:
Sessions sind Sessions, egal auf welchem Wege du die Session-ID übergibst, ob per Cookie oder als GET-Parameter. Und deine ursprüngliche Erklärung klang eher so, als ob du von Anfang an Sessions benutzt hättest, nur eben mit Übergabe der SID ausschliesslich per Cookie. Zitat:
Wird er nicht erkannt, dann hat er keine mitgeschickt. Oder der Server hat sie von selber ausgefiltert/verworfen (suhosin). Welches von beiden die Ursache ist, ist zu untersuchen. Zitat:
Ob der Client sie auch wieder zurück geschickt hat, ist zu überprüfen - hast du entsprechende, eindeutige Anhaltspunkte, dass das der Fall war? (Auftauchen der SID in der Adresszeile des Browsers wäre bei Übergabe per GET recht eindeutig.) Zitat:
Wenn das bei deinem Test dann problemlos läuft, keine Fehler auftreten, auch im Test mit verschiedenen Browsern und unterschiedlichen Client-Einstellungen, was bspw. Cookie-Annahme angeht - dann musst du wirklich noch mal an die Nutzer ran, die Probleme damit haben. Dann müssen die genauer die Umstände beschreiben, ggf. auch mal dein Test-Script selber von ihrem Rechner aus aufrufen - damit du auswertbare, aussagekräftige Informationen bekommst. Zitat:
Zusammen mit dem Zugriffszeitpunkt des nächsten Nutzers, der Probleme meldet, ließe sich daran dann vielleicht was erkennen.
__________________ RGB is totally confusing - I mean, at least #C0FFEE should be brown, right? | |||||
| |
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| LOCK tables... | Samhayne | Datenbanken | 41 | 18.02.2010 11:15 |
| [Erledigt] Session Klasse in Session | Haze | PHP Tipps 2010 | 11 | 27.01.2010 20:59 |
| [Erledigt] Bei jedem User der sich einloggt wird die selbe session Id vergeben? | Rutor | PHP Tipps 2009 | 13 | 07.01.2010 12:33 |
| Projekt: User über Intranetpage erstellen, auf einen VoIP-Server | beta1234 | PHP Tipps 2009 | 2 | 22.07.2009 13:21 |
| User Online via Session | larabad | PHP Tipps 2009 | 17 | 18.05.2009 15:48 |
| SessionHandler - Sessions in einer Datenbank | #Avedo | Software-Design | 11 | 04.05.2009 15:44 |
| User erkennen (ohne session + ohne cookies + prob mit IP) | PHP Tipps 2007 | 8 | 30.12.2007 23:35 | |
| 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 |
| session array | Timo Trallala | PHP Tipps 2006 | 18 | 22.04.2006 13:45 |
| [Erledigt] php session problem :( | PHP Tipps 2005-2 | 5 | 21.10.2005 16:37 | |
| MIt einer Session ID den User überprüfen | PHP Tipps 2005 | 8 | 17.02.2005 13:55 | |
| [Erledigt] PHP linux user wechseln | PHP-Fortgeschrittene | 12 | 05.12.2004 16:11 | |
| Session Dauer oder Timeout | Datenbanken | 3 | 15.11.2004 17:26 | |
| Access denied for user: '@localhost' / SYSTEM@localhost | Datenbanken | 0 | 10.11.2004 20:35 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| session logout, http://www.php.de/php-einsteiger/68656-logout-durch-verlust-der-session-id-zwei-ids-pro-user.html, php session verlust, session verlust, logout ohne sessionid, session id zwei login, session id proe, session weg durch weiterleitung, firefox verlust der session, mehrere sid ad pro user, php neue session id erzwingen, logout php, beim wechsel zu cookie neue session, session id inhalt, session id cookie deaktiviert, mehrere logouts php, php user durch session abmelden, logout login problem php, eine session-id pro user, php user abmelden |