wie unsicher ist es eine Session_ID über den Get-Parameter zu übergeben???
Nicht unsicherer als über POST oder Cookies.Einspruch. Ein Möglichkeit wäre: Sagen wir mal, Du hast ne Community und sowas hier:
www.example.org/meinprofil?SESSIONID=XYZ1234Erlaubt diese Seite nun dem Community Mitlied z.B. externe Links einzustellen, so kann die SESSIONID durch den vom Client womöglich gesendeten referrer im accesslog des Fremdservers auftauchen.
Das ist richtig. Allerdings gibt es noch mehr Gründe, auf die GET Methode zugunsten der POST Methode zu verzichten. Diese aber erhöhen alle nicht die Sicherheit, sondern verringern nur die Wahrscheinlichkeit dass eine Unsicherheit ausgebeutet werden kann.
Die primäre Unsicherheit, die für alle gilt, ist die sichtbare Datenübertragung. Dem kann man mit SSL entgegenwirken.
Wenn aber SSL keine Option ist, dann muss man man SIDs zusätzlich absichern...
Das lässt sich dann zwar mit weiteren Mechanismen prüfen / verhindern, erhöht aber die Komplexität und damit potentiell die Fehleranfälligkeit.
Insofern möchte ich schon sagen: "Cookie only" ist sicherer... und natürlich für den Benutzer wie auch Suchmaschinen praktikabler, aber das war ja nicht gefragt...
Das problem ist, dass Cookies ein Browser+Domain <-> Server Identifikationsystem darstellen, kein User <-> Server System.
Der Browser sendet alle Cookies an die passende Domain.
Verwende ich SIDs in Links oder Formularen, dann kann ich auf die Useraktion ganz exakt eingehen.
Will man hier das Optimum errreichen, dann braucht man eigentlich eine:
CID (ClientID via Cookies = SID)
RID (RequestID via Content)
Im Optimum lassen sich dadurch Mehrere Sessions gleichzeitig betreiben, Onetime RIDs betreiben (zusätzliche Sicherheit) und die möglichen Lecks via Referer (wie du oben gesagt hast) oder Links in Foren gepostet aushebeln, indem man CID und RID gemeinsam validiert.
Sicherheit geht immer auf Kosten von Komplexität. Es bedarf ein mehrfaches ans Tests. Das ist klar. Aber Cookies alleine sind schlicht nicht für sichere Systeme mit Schreibrechten tauglich.
Und klar: Wer SSL benutzen kann, ist klar im Vorteil.
mfg Beat