phpbar.de logo

Mailinglisten-Archive

[php] Sessions ohne Cookies

[php] Sessions ohne Cookies

Stefan Markmann php_(at)_phpcenter.de
Fri, 20 Apr 2001 17:40:30 +0200


Hallo,

dieses Thema wurde ja schon oft beredet, aber ich denke ich habe eine Idee.

Um Sessions nicht als Cookies zu speichern muß man sie auf dem Server
speichern. Das würde ich in eine MySQL Db machen.

Nun kommt ein Client und kriegt von der index.php eine uniqid(). Die sieht
dann so aus: 9868153443ad19b70259cb = uniqid(time())

Dieser String wird mit ip-adresse (oder ipname) und einigen anderen infos in
der db gespeichert.

Dann leitet die index.php den Client per Header auf eine subdomain. die
subdomain ist die uniqid - 9868153443ad19b70259cb.meinedomain.de

die gleiche index.php prüft dann, ob die session zum user gehört (wenn nicht
wird ne neue gemacht) und zeigt ihm seine seite an.

um ein ttl zu erzeugen, wird bei jedem aufruf time() in die db geschrieben -
ist dbtime + 3600 < time() -> session ungültig.

die alten sessions werden bei jedem aufruf gelöscht (lösche alle wo dbtime +
3600 < time()).

um zu gewährleisten, dass nur der richtige client auf die session zugreifen
kann, könnte man neben ipname auch den HTTP-Client oder ähniches loggen.

lokal habe ich den iis5 mit dem dns dienst von windows2k installiert. dabei
wird jede nichtexistente subdomain auf das standardweb geleitet. ich weiß
nicht wie das mit bind unter linux läuft.

Was haltet ihr davon? Verbesserungsvorschläge, Kritik - oder ist das
Schwachsinn?

Stefan



php::bar PHP Wiki   -   Listenarchive