2012-07-28 3 views
5

Meine Website befindet sich unter einem Brute-Force-Angriff, bei dem die Angreifer versuchen, Zugriff auf Benutzerkonten zu erhalten. Die Bots haben keinen Benutzeragenten. Ich habe ein System, das eine Person daran hindert, sich einzuloggen, wenn sie 3 Versuche pro Konto in weniger als 10 Minuten überschreitet.Sind Sitzungen nur in einem Browser gespeichert?

Ich machte es auch für einen Benutzer-Agent überprüfen, und wenn nicht, beenden.

Meine Frage ist: Sind Sitzungen nur in Browsern gespeichert? Was ich denke ist, dass sie ein Skript verwenden, das über die Befehlszeile ausgeführt wird.

habe ich dies auch umgesetzt:

if(!isset($_COOKIE[ini_get('session.name')])) { 
header("HTTP/1.0 404 Not Found"); 
exit; 
} 

Gibt es etwas, was ich diese Angriffe zu verhindern tun kann?

+2

Sitzungen sind serverseitige Speicher, die (normalerweise) mit Benutzern mit Cookies verknüpft sind. – nickb

+0

Google für: Session Hijack in PHP – Yang

Antwort

14

Der Inhalt einer Sitzungsvariablen wird auf dem Server gespeichert. Die Sitzung wird jedoch durch eine Sitzungs-ID identifiziert, die auf dem Client gespeichert und mit jeder Anforderung gesendet wird. Normalerweise wird die Sitzungs-ID in einem Cookie gespeichert, aber sie kann auch an URLs angehängt werden.

Es gibt eine ziemlich interessante Lektüre auf session hijacking auf Wiki und auch eine bei PHP Security Consortium, die Ihnen ein besseres Verständnis darüber geben sollte, was Hijacking ist und wie man es verhindert.

  • PHPs session_regenerate_id(), nachdem der Benutzer erfolgreich anmeldet Dadurch wird eine neue Session-ID, die sich von der:

    viele Methoden Es gibt zu helfen, diese Angriffe zu verhindern, habe ich drei hingewiesen. eine, die beim ersten Besuch im öffentlichen/sicheren Bereich erstellt wurde, wenn natürlich eine Sitzung gestartet wurde.

  • Notieren Sie die IP-Adresse, Sitzungs-ID und den Benutzeragenten des Benutzers bei erfolgreicher Anmeldung. Überprüfen Sie den IP- und Benutzeragenten für jede Anforderung. Wenn IP und Agent für diese Sitzung nicht übereinstimmen, melden Sie sie erneut an. Aber Vorsicht, manchmal kann sich die IP eines Benutzers ändern und jemanden verärgern. Beachten Sie auch, dass ein Benutzeragent auch leicht gefälscht werden kann.
  • Verwenden Sie SSL/TCL, um die in einer Anfrage gesendeten Informationen zu verbergen.