2016-03-30 11 views
0

Ich möchte HTTPS nicht für meine Web-App verwenden. Ich habe Digest-Authentifizierung als Methode verwendet, um die Anmeldung an meinem System zu sichern. Und nachdem der Benutzer authentifiziert wurde, sende ich einfach Nonce an sie (1 min). Wenn Benutzer eine Anfrage stellen, überprüfe ich einfach, ob die Nonce abläuft, bevor ich ihnen Antwort schicke.Wie sichere session_id?

Ich möchte wissen, ob es für mich notwendig ist, Benutzer session_id zu schützen, falls die Angreifer die Nonce wiederholen oder den Nonce-Erzeugungsmechanismus erraten? Und wenn ja, wie sichere ich die session_id?

Antwort

1

Werfen Sie einen Blick auf Session Hijacking und Fixation

die besten Lösungen für Session Hijacking/Fixation ist:

  • Regenerieren Sitzungs-ID an den wichtigen Punkten. In Ihrem Fall nach der Benutzeranmeldung. Nach der Benutzeranmeldung geben wir ihm eine neue Sitzungskennung. Also, im Falle, dass ein Hacker die Session-ID geklaut hat, wäre es nutzlos und würde nicht funktionieren.
  • Benutzer-Agent/IP-Adresse speichern und mit die Benutzer-Agent/IP-Adresse vergleichen, die kurz vor dem Login verwendet wurde. Ein Hacker hätte nicht die gleiche User-Agent/IP-Adresse wie der legitime Benutzer. Aber denken Sie daran, User Agent/IP-Adresse kann manchmal gefälscht werden.
  • Last but not least, zerstören alte Sitzung regelmäßig.

Behalten Sie dies im Hinterkopf, Ihr Programm ist vor Session Hijacking/Fixation geschützt.

+0

Danke für die Antwort. Ich habe einige Zweifel bezüglich der Lösungen 1 und 3. Für Lösung 1: Obwohl wir den Benutzern eine neue Sitzungskennung geben, kann der Angreifer in der nachfolgenden Anfrage immer noch die neue Sitzungs-ID ausspionieren. Für Lösung 3: Was ist der Unterschied zwischen dem Löschen der Sitzung und dem Generieren der neuen Sitzungs-ID? Ist es nicht einfacher, die Sitzungskennung neu zu generieren? –