LOGIN Prüfen ob User angemeldet ist

Ja ich habe ne DB im Hintergrund!
Ich dachte immer bei einem IP-Wechsel ist die Session automatisch beendet
Soweit ich weiss ist es so, dass Du eine Session mitnehmen kannst solang Du eine gueltige SessionID vorweisen kannst. Dass ist ja gerade was das Session-Hijacking relativ einfach macht.

Gut, aber muss man die Daten (USER_AGENT und REMOTE_ADDR) bei jedem Login neu in die DB einbinden?
Nein, das uebernimmt die Session-Klasse fuer Dich.

Ich werd die Daten nur für die Session anlegen, aber nicht noch extra mitspeichern, weil diese sich ja immer ändern. Eine History benötige ich nicht extra, da ich alle Loginaufrufe mit diesen Daten in eine log-Datei (txt) abspeichere.
Wie gesagt, die Daten zur Session werden von der Klasse verwaltet. Eigentlich sollten abgelaufene Sessions auch nach einer Weile geloescht werden, ob das so richtig funktioniert kann ich aber zur Zeit nicht mit Bestimmtheit sagen.

Ja der Begriff sagt mir was, aber dabei geht es doch um Variablenübergabe an die DB.
Ich muss mir noch mal eine Klasse mit strenger Typenkontrolle basteln, das meinst du damit. Aber ich habe schon relativ viel abgesichert, aber es geht noch einiges...
Es geht darum dass Du verhinderst dass der User unerwuenschten SQL-Code in Deine Abfrage einbauen kann.
In meiner Klasse wird dies durch den Aufruf von $this->db->escape_string() geregelt, welche einen Wrapper um Funktionen wie mysql_real_escape_string() darstellt.
 
Soweit ich weiss ist es so, dass Du eine Session mitnehmen kannst solang Du eine gueltige SessionID vorweisen kannst. Dass ist ja gerade was das Session-Hijacking relativ einfach macht.
Oh, warum regelt PHP, dann die Session nicht zusätzlich noch über die IP?
Ok, wo ich die Frage stelle merke ich es selbst für Proxy wäre keine eindeutige Identifikation möglich, und auch nur als zusätzliche Überprüfung ginge auch nicht, da ich früher auch mal AOL-Kunde war :)

Es geht darum dass Du verhinderst dass der User unerwuenschten SQL-Code in Deine Abfrage einbauen kann.
hm, aber beim Benutzernamen kann er wenig Schaden anstellen?
und aus dem eingegebene PW wird ja auch gleich ein Hash erzeugt?
Aber man könnte es ja auch einfach so schreiben. oder irre ich:
PHP:
$sql = "SELECT ".  
    "Id, Nickname, Kennwort, Rechte, login ".  
  "FROM ".  
    "benutzerdaten ".  
  "WHERE ".  
    "(Nickname like '".mysql_escape_string($_POST["Nickname"])."') AND ".  
    "(Kennwort = '".md5 (mysql_escape_string($_POST["Kennwort"]))."')";
Auch wenn es sehr schlechtes coding in meinen Augen ist.
 
Ok, wo ich die Frage stelle merke ich es selbst für Proxy wäre keine eindeutige Identifikation möglich, und auch nur als zusätzliche Überprüfung ginge auch nicht, da ich früher auch mal AOL-Kunde war :)
Auch vom Proxy kommt ja eine IP. Man koennte aber auch checken ob vom Proxy die Client-IP durchgereicht wurde, ein ordentlich eingerichteter Proxy sollte dies tun, nur Proxies die den Client anonymisieren sollen tun dies nicht, und dann eben diese verwenden.

hm, aber beim Benutzernamen kann er wenig Schaden anstellen?
und aus dem eingegebene PW wird ja auch gleich ein Hash erzeugt?
Also der Hash ist, wie Du schon sagst, ungefaehrlich, da es sich bei einem solchen Hash ja um einen Wert mit begrenztem Zeichensatz handelt.
Aber wer sagt denn dass der User im Feld fuer den Usernamen wirklich nur Buchstaben verwendet?
Da gibt es durchaus Moeglichkeiten Code in die SQL-Abfrage einzuschleusen die dann z.B. Deine Passwort-Abfrage schlichtweg aushebelt.
 
Zurück