Moin!
Hast du dich über die möglichen Sicherheitsrisiken der URL-übermittelten Session-ID informiert?
ja ich hab schon was darüber gelesen. Ist dieses Problem auch noch relevant wenn man (wie ich vorhabe) sämtliche Verbindung über SSL macht, sprich ist der url-anhang dann auch irgendwie verschlüsselt?
Du hast offenbar diffuse Sicherheitsbedenken, ohne aber konkrete Überlegungen auf Basis von handfesten Fakten anstellen zu können.
Das Problem mit der in der URL enthaltenen Session-ID ist, dass diese Information allzu leicht vom Browserbenutzer in die Welt getragen werden kann, was unerwünscht sein kann. Auch eine HTTPS-URL kann man aus dem Browserfenster in eine Mail kopieren, der Mailempfänger surft dann unter der gleichen Session weiter, wenn er vor Ablauf der Sessiongültigkeit die URL aufruft.
SSL verschlüsselt, das hilft aber nur gegen bösartige Mitlauscher auf der Leitung.
Auch aus diesem Grunde wollte ich ursprünglich ja die Session über JSON quasi manuell steuern, aber da mir niemand sagen konnte wie man auf diese Weise abfragt ob eine Session schon existiert oder nicht habe ich das erstmal fallengelassen.
Dein Argument gegen Cookies ist "die haben 'viele' abgeschaltet". Und deshalb willst du dich zwingend auf Javascript verlassen - von dem ich behaupte, dass das noch viel mehr Leute abgeschaltet haben, weil es für die diversen nervigen Effekte vor allem in Werbung verantwortlich ist.
Klingt irgendwie nicht sonderlich faktengerecht, würde ich meinen.
Da ich wie gesagt vom non-cookie-fall ausgehe
Du solltest vom Cookie-Fall ausgehen. Der ist Standard in über 90% der Nutzerfälle, würde ich schätzen.
Du gehst schließlich auch von aktiviertem Javascript aus:
und bei mir json die Hauptrolle spielt und eben die url-lösung sowieso nicht ganz so optimal ist, komme ich jetzt nochmal zu meiner Ausgangsfrage (Anfrage 'Session und JSON') zurück, denn ich glaube Du weisst ob und wenn wie es geht: Wenn ich die session_id per json an den Server schicke, mit was muss ich diese session_id dann wie vergleichen ode wo muss man diese einsetzen um festzustellen ob bereits eine entsprechende Session existiert oder ggf eine neue Session(id) gestartet werden muss?
PHP macht alles automatisch, wenn du Cookies zuläßt und ausschließlich Cookies nutzt, du mußt dich da um nichts kümmern.
Wenn du das Fallback nutzen willst, hast du manuell dafür zu sorgen, dass alle URL-Requests des Browsers, die nicht von PHP automatisch (durch die Option session.use_trans_sid) um die Session-ID ergänzt werden, diese manuell erhalten.
PHP hängt, sofern der Request keine Cookies mit Session-ID mitgeschickt hat, an alle URLs ohne Domainangabe (die also potentiell zu einem fremden Server führen könnten), die sich in Links, Formularzielen oder Frames befinden (siehe url_rewriter.tags). Alle anderen URLs mußt du in deinem Skript passend bearbeiten - üblicherweise bedeutet dass, an eine URL als Parameter die Konstante SID anzuhängen (darauf achten, dass sie leer ist, wenn Cookies genutzt werden), POST-Requests erfordern noch eine aufwendigere Behandlung, indem man die Session-ID sowie den Session-Namen in den Request einfügt (Funktionen session_name() und session_id() liefern die notwendigen Daten).
- Sven Rautenberg
--
"Love your nation - respect the others."