$_SESSION sicher?
-
hallo leute
wollte kurz nachfragen wie sicher $_SESSION überhaupt ist. kann man eine $_SESSION variable manipulieren? ich verwende bei POST anfragen stehts die $_SESSION werte um authentifikationen durchzuführen. kann der client dort irgendwas manipulieren wie es z.B. bei GET oder POST (per software z.b.) möglich wäre?
-
speicher dir session, ip, browserkennung und zeit in eine datenbank und frage beim nächsten zugriff dieselben elemente ab.. (wenns noch extremer sein soll)
darüber hinaus ist das größte loch wohl der mensch, der kaffee trinken geht und seinen browser offen gelassen hat (auch auf einer neuen seite.., man kommt dann zurück)
denke dir also ein system aus, dass bei untätigkeit nach einer bestimmten zeit rauswirft.
-
elise schrieb:
speicher dir session, ip, browserkennung und zeit in eine datenbank und frage beim nächsten zugriff dieselben elemente ab.. (wenns noch extremer sein soll)
IP-Überprüfungen sind schlecht! Der Benutzer braucht nur über einen Proxy surfen - wozu ihn sein ISP vlt. sogar unter der Haube zwingt! -, und schon wird er sofort gekickt. Die Annahme, die IP würde sich immer im selben Subnetz bewegen, ist auch nicht mehr haltbar.
Zur Ausfangsfrage:
Die Werte können nicht manipuliert werden. PHP ließt die Variablen der $_SESSION-Variable per Default serialisiert aus Dateien aus (in die es sie entsprechend auch speichert). Solange der Angreifer keinen Zugriff auf das erweiterte Dateisysem hat (also das, was nicht einmal dem Kunden selbst zur Verfügung steht), dürfte da nichts passieren.Eine Datenbank mit Verschlüsselung und Authentifizierungssystem wäre natürlich vom Anschein her sicherer. Praktisch denke ich das aber kaum, denn in irgendeiner PHP-Datei werden die Zugriffsdaten zum SQL-Daemon stehen. Und wenn der Angreifer schon Zugriff auf das Dateisystem direkt hat, bleiben die dann auch nicht lange unentdeckt. Von daher ist es höchstens ein marginales Plus an Sicherheit (was aber natürlich trotzdem auch nicht schadet).
-
was allerdings unsicher ist, ist die Session ID. die kann ein angreifer ja faken - da sie plaintext maessig ueberall hin uebertragen wird. siehe session hijacking und co.
-
vielen dank für das feedback