Session-Hijacking verhindern

Wie wollen Sie verhindern, dass mehrere clients mit den gleichen session-ID? Ich Frage das, weil ich will, um eine zusätzliche Ebene der Sicherheit, um zu verhindern, dass session-hijacking-Angriffe auf meine website. Wenn ein hacker irgendwie die zahlen aus anderen Benutzers Sitzungs-ID und Anfragen mit, dass SID, wie kann ich erkennen, dass es verschiedene clients den Austausch einer einzelnen SID, die auf dem server und dann lehnen die hijack-Versuch?

BEARBEITEN

Habe ich angenommen Gumbo Antwort, nach reiflicher überlegung, denn ich habe zu der Erkenntnis kommen, dass das, was ich Frage ist unmöglich, aufgrund der Beschränkungen des zustandslose HTTP-Protokoll. Ich vergaß, was ist vielleicht die grundlegendste, HTTP, und jetzt, dass ich denke, über diese Frage scheint ein bisschen trivial.

Lassen Sie mich aufwendige, was ich meine:

Nachdem Benutzer A anmeldet example.com er ist einige zufällige session-ID, der Einfachheit halber, lass es sein 'abc123'. Diese session-ID gespeichert ist, als ein Plätzchen auf der client-Seite und ist validiert mit einem server-side-Sitzung, um sicherzustellen, der Benutzer, der angemeldet angemeldet bleibt, wie er wechselt von einer Webseite zur anderen. Dieses cookie würde natürlich nicht vorhanden sein müssen, wenn der HTTP-wurden nicht staatenlos. Aus diesem Grund, wenn Benutzer B Stiehlt Benutzer Eine SID, und erstellt ein cookie auf seinem computer mit dem Wert 'abc123', er hätte erfolgreich gekapert Benutzer Eine Sitzung, aber es gibt einfach keine Möglichkeit für den server, um rechtmäßig zu erkennen, dass Benutzer B die Anfrage ist jede andere von der Benutzer Eine s-Anforderungen, und daher hat der server keinen Grund für eine Ablehnung einer Anfrage. Selbst, wenn wir auf die Liste der Sitzungen, die waren schon auf dem server aktiv und versuchen zu sehen, ob jemand Zugriff auf eine session, die bereits aktiv ist, wie können wir feststellen, dass es ein anderer Benutzer, der Zugriff auf die session-unehelich und nicht der gleiche Benutzer bereits angemeldet ist mit einer session-ID, sondern einfach versuchen zu machen, ein weiterer Antrag (ie, navigieren Sie zu einer anderen Webseite). Wir können es nicht. Die überprüfung der user-agent? Manipuliert werden können - aber gut, wie eine Verteidigung in der Tiefe Messen Sie trotzdem. Die IP-Adresse? Ändern kann sich aus berechtigten Gründen - aber anstatt die Prüfung nicht für die IP-Adresse an alle, ich schlage vor, die überprüfung etwas wie die ersten beiden Oktette der IP -, als auch ein Benutzer auf einen Daten-plan-Netzwerk, die ständig eine wechselnde IP für vollkommen legitime Gründe wären in der Regel nur die letzten beiden Oktette Ihrer IP ändern.

In consclusion, es ist das zustandslose HTTP, verurteilt uns, dass Sie nie in der Lage, vollständig schützen unsere Webseiten, session hijacking, aber gute Praktiken (wie Gumbo zur Verfügung gestellt hat) wird gut genug sein, um zu verhindern, dass eine gute Mehrheit von session-Angriffe. Zu schützen versuchen, die Sitzungen von der Entführung durch die Verweigerung der mehrere Anfragen von der gleichen SID ist daher einfach lächerlich, und würde den ganzen Zweck vereiteln, Sitzungen.

Kommentar zu dem Problem
Gut! überprüfung der ersten beiden Oktetts der IP-Adresse ist nicht effektiv als auch. Unterschiedliche Menschen mit der gleichen internet-service-wahrscheinlich haben die gleichen ersten zwei Oktette, obwohl Sie unterschiedliche IP-Adressen als ganzes. Kommentarautor: WatsMyName
Die ersten zwei Oktette kann auch berechtigterweise zu ändern - zum Beispiel in einer großen organisation, wo es mehrere internet-gateways durch verschiedene ISPs. Kommentarautor: shonky linux user

InformationsquelleAutor der Frage hesson | 2012-09-02

Schreibe einen Kommentar