PHP Session mit ActionScript Klasse ersetzen

oaki

Erfahrenes Mitglied
Hi,

Ich arbeite zurzeit an einer Flash-Applikation mit Datenbankanbindung und Userlogin.

Nun habe ich in PHP eine Klasse geschrieben, die das Ein- und Ausloggen und das Prüfen des Onlinestatus des jeweiligen Users ermöglicht.

Statt Sessions zu verwenden, habe ich mich gefragt ob es nicht besser wäre, die Daten session_id, user_id, login_time, und IP beim Login in einer "User" AS-Klasse und in der DB zu speichern und vor jedem Zugriff die Daten aus der User Klasse mit denen aus der Datenbank zu vergleichen anstatt mit den mit den Session Variablen.

Besteht da ein grösseres Sicherheitsrisiko als mit Sessions?
Weil soweit ich mich erinnern mag, gibt es php sessions nur damit man einfach zwischen verschiedenen Seiten kommunizieren kann, und nicht aus Sicherheitsgründen.. Aber vielleicht täusche ich mich da grausam..
 
Hi,

wenn Du diese Daten temporär auf dem Client zwischenspeicherst, besteht zumindest das Risiko, dass jemand diese dort ausliest. Die Session-ID befindet sich allerdings (im Browser bzw. in einem Cookie) sowieso auf dem Client, so dass ich keinen großen Unterschied erkennen kann.

Was sollte denn der Vorteil Deiner Methode sein? Die Session-ID musst Du sowieso bei jeder Anfrage an den Server schicken; aus dieser bekommst Du dann alle anderen Werte. Worin liegt der Sinn, User-ID, Login-Time usw. ebenfalls mitzusenden?

Gruß
.
 
HI Tobias,

Danke für deine Antwort. Ich dachte mir, statt nur die IP und die session_id zu überprüfen, könnte ich auch schauen ob die LoginTimes übereinstimmen.

Irgendwie steht ich auf dem Schlauch..

Also, das ganze läuft doch folgenermassen ab:
  1. User loggt sich ein
  2. Dem User wird eine session id zugewiesen und inkl. IP in eine DB gespeichert
  3. Vor jeder Aktion, wird die geprüft, ob die session id vom client (in meinem fall in der AS Klasse) mit der der DB übereinstimmt
  4. wenn nicht, wird der Zugriff verweigert,
  5. wenn ja, wird die Aktion ausgeführt

Grundsätzlich geht es doch darum zu prüfen, ob ein User auch derjenige ist, als welcher er sich angemeldet hat, oder versteh ich da was falsch?
 
Hi,

1. User loggt sich ein
2. Dem User wird eine session id zugewiesen und inkl. IP in eine DB gespeichert
3. Vor jeder Aktion, wird die geprüft, ob die session id vom client (in meinem fall in der AS Klasse) mit der der DB übereinstimmt
4. wenn nicht, wird der Zugriff verweigert,
5. wenn ja, wird die Aktion ausgeführt
So läuft es auch bei mir in den meisten Fällen.

Wahrscheinlich stehe ich auf dem Schlauch, aber was bringt es Dir, zusätzlich zur Session-ID auch ID und die LogIn-Time zu speichern? Wenn jemand die Session klauen kann, kann er das auch mit anderen Daten machen, und einer Session kannst Du ja sowieso eine begrenzte Lebensdauer geben.

Gruß
.
 
Wenn jemand die Session klauen kann, kann er das auch mit anderen Daten machen.
.

Guter Punkt! Wegen der Lebensdauer von Session: Ich arbeite ja nicht mit PHP Sessions, sondern nehme einfach die session_id und speichere sie in der User Klasse. Es müsste nicht umbedingt session_id sein, sondern ich könnte irgendeine ID dynamisch zusammenschustern lassen und die dann als Identifizierungsmerkmal für den User brauchen.

Ich glaub' dann weiss ich wie ich das ganze handlen sollte! Danke nochmals!
 
Jupp,

ob Du eine PHP-Session-ID (bzw. eine selbst geschusterte) in einem Session-Cookie, dem Browsercache oder in einem Flashfilm ablegst, dürfte gehupft wie gesprungen sein. ;)

Gruß
.
 
Zurück