![]() |
sicherheitsrisiko: use_trans_sid ?
servus
ich hab mal ne frage. wie hoch stuft ihr das sicherheitsrisiko ein, wenn man session.use_trans_sid bei php aktiviert hat? ich bräuchte es damit man sich auch einloggen kann wenn man keine cookies akzeptiert. was meint ihr, risikiere ich da viel? |
Also ich würde eher den Weg gehen, die ID in eine DB zu schreiben und von dort auszulesen für die Weiterverarbeitung.
Die Session bleibt sonst ewig am Leben :-) Bin mal gespannt, was die Profis meinen :) Sloter |
Zitat:
mir fällt dazu aber keine (einfache) lösung ein. |
Es gibt 2 Systeme, also auch 2 Sessions. Man programmiert nun entweder eine Pipe, wo alle Daten verschlüsselt per GET (bis 1024Byte) oder POST (je nach Einstellung am Server) übergeben werden. Oder man legt alle Daten in einer Datenbank ab und übergibt nur die Session-ID, welche bei jedem Datensatz mitgespeichert wird. Die Session-ID verschlüsselt man z.B. mit RSA und schon ist es sicher.
Sloter |
das wäre das drumherum nur mein prob is wie sende ich die id immer per get mit? und zwar nur dann, wenn der client KEINE cookies nimmt, da anonsten die sessionid eh mit dem cookie gesendet wird.
|
Das kommt ganz darauf an...
Bei einem Forum ist es sicher nicht so tragisch wie bei einem WebShop oder WebMailer. Worauf man achten sollte: Nach dem Login die Session-ID mit session_regenerate_id() neu erzeugen. Externe Links über ein Redirect-Script laufen lassen, welches die Session-ID "schluckt". Bleibt immer noch die Möglichkeit, dass der User die URL einfach aus der Adresszeile kopiert. Wie kann man jetzt sicherstellen, dass die Session dem Benutzer gehört, der sie aufruft? ... gar nicht. Ein Check des User-Agents ist sogar verlässlicher als die IP... Soll es wirklich sicher sein, wirst du um SSL nicht herum können. Ob unser alkalischer Freund die Session-Daten jetzt in der DB speichert oder nicht, ist eher Geschmackssache, da sich dabei höchstens Spionage am Server etwas eindämmen läßt. :) ~ |
session_regenarte_id() muss ich ausprobieren klingt aber gut :)
ad externe links: ich weiß nicht was du genau meinst aber bei mir haben externe links keine session_id drangehängt. user agent ist doch nur ne agabe über den browser oder? ajo und es wird kein webshop sondern ich möcht nur verhindern, dass jemand ohne größere schwierigkeiten admin-rechte etc auf meiner seite erwirbt. |
Zitat:
~ |
Zitat:
und wie kann ich ausm referer was entfernen? bzw wie genau wird mir der gefährlich? |
Sieh dir mal eine Apache AccessLog Datei an.
redirect.php PHP-Code:
|
1.) woher nehm ich die HTTP.php
2.) wie bau ich die redirect.php ein 3.) kann ich die sessions nicht anders validieren? |
|
Zitat:
dachte zuerst den AUF meine seite (also von einer andren):confused: im prinzip macht dieses script nix außer einen http-location header zu senden oder? btw: ich prüf die sesssion nun bei jedem seitenaufruf auf IP, User Agent und ob sie noch nicht abgelaufen ist. schlägt ein check fail, wird die session gelöscht und eine neue erstellt. |
Es gibt Provider, die ändern die Client-IP sekündlich...
~ |
Zitat:
was? wieso das? afaik prüfen aber die "großen" foren wie phpBB und vBulletin die sessions ebenfalls mittles IP. was passiert in den foren mit solchen benutzern? |
ich verzweilfe noch :(
irgendwie muss hinter dem pear script doch mehr stecken als ein header(). nur was genau macht es aus, dass der referer nicht mit gesendet wird? |
so ich bin jetzt beinahe 10 stunden dran gesessen.
wenn die sessionid nicht folgende 3 checks erfolgreich absolviert, wird dem benutzer eine neue sessionid zugewisen. somit wird die aktuelle nicht beschädigt, und der nutzer hat trotzdem keinen zugriff auf die session: 1.) IP-Check 2.) User-Agent-Check 3.) "Ablauf"-Check d.h. wenn die session seit einer bestimmten zeit nicht "aufgefrischt" wurde ist sie undültig und wird zerstört. das einzige was nun noch fehlt is der referer *ächz*:eek: |
Zitat:
|
hab jetzt folgenden check:
Code:
if($_SESSION['Expire'] < time() or $_SESSION['User_IP'] != $IP or $_SESSION['Agent'] != $_SERVER['HTTP_USER_AGENT'] or checkreferer() != True){ checkreferer(): Code:
function checkreferer(){ |
kann mir bitte jemand erklären was der "zaubertrick" in dem http-pear-script ist, dass der referer nicht mitgesendet wird?
ich schnalls einfach ned....... |
Alle Zeitangaben in WEZ +2. Es ist jetzt 10:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag