phpbar.de logo

Mailinglisten-Archive

[php] Sessions for runaways

[php] Sessions for runaways

Gerald Grote 520087027001-0001_(at)_t-online.de
Sun, 17 Sep 2000 16:24:22 +0200


Hi,

mal wieder das Session-Thema :-)

> > Wie übergebe ich die Session ohne Cookie/GET?
> > MfG Chris
>
> [...]
> Dir wird wohl nichts anderes übrig bleiben als entweder deinem Kunden
> die Kekse schmackhaft zu machen oder GET soweit aufzumotzen, dass es für
> den Kunden annehmbar ist.
> Dazu fällt mir folgendes ein:
> - Prüfe die IP. Wenn jemand während einer Session die IP welchselt, ist
> es gut möglich, dass auch der Rechner gewechselt, also die Session
> geklaut wurde. Diese Sicherung kann man nur überlisten, wenn man durch
> die selbe Firewall/durch den gleichen Proxy wie der ursprüngliche
> Session-Inhaber ins Netz geht. Aber das sollte zu verschmerzen sein.

Dagegen spricht, dass ...
a) ... sehr viele Anfragen von Proxys kommen und deshalb ein und die selbe
IP verwenden, auch wenn die in verschiedene Sessions gehören.
b) ... IPs zunehmend dynamisch vergeben werden. Bei einer erneuten Einwahl
ist die Session beendet. Noch schlimmer: Größere Proxys bestehen aus
mehreren Rechnern mit eigener IP. Die IP wechselt also von Request zu
Request.

> - Eine nicht ganz saubere Lösung ist die Prüfung des HTTP_REFERERs.

Du schreibst ja selbst, warum Referer problematisch sind. Auch die nicht so
"exotischen" Browser werden evtl. schon bald eine Option zum Abschalten des
Referers haben, die sicherheitstechnisch wirklich problematisch sind.
Spätestens dann kann man den Referer als Session-Tracker vergessen.

> - Zur optischen Aufpolierung der URL kann man nicht viel mehr als
> mod_rewrite verwenden, dass was kryptisches in der URL steht lässt sich
> aber nicht vermeiden. Ausser über Frames, aber die sind wie gesagt
> bissig.

Ein "?id=abcdefghijklm" ist auch aus kosmetischer Sicht eigentlich
unproblematisch (auch wenn manche Suchmaschinen diese Dinger immer noch
nicht anfassen). Sehr elegant finde ich, die ID in die Domain zu kodieren
("abcdefghijklm.irgendwas.de"), das macht die interne Verlinkung viel
einfacher. Aber darauf gibts ja dummerweise eins dieser nervigen Patente.

Wenn man die ID lang genug macht und sie eindeutig und zufällig ist, kann
man auch die Gefahr, dass der User daran rummanipulieren kann,
vernachlässigen. Es wird ihm kaum gelingen, eine gültige und gerade aktive
SessionID zu erwischen.

Problematisch sind die Referers, die dafür sorgen, das die Session-IDs
munter in allen möglichen Server-Logfiles mitprotokoliert werden. Um das zu
verhindern, müßen alle Links nach draußen über eine Weiterleitung laufen
(ein Problem, das z.B. GMX vor einiger Zeit lösen musste).

Wer es wirklich sicher haben will, sollte sich SSL anschauen, alles andere
(IPs, Referer, Frame/Script-Spielereien) ist "gefrickelt". Fürs normale
User-Tracking, Zugang zu Foren, Personalisierung etc. sind Cookies und als
Fallback GET (also die PHPLib-Veriante) IMHO durchaus ausreichend.

Bye, Gerald.



php::bar PHP Wiki   -   Listenarchive