Korrekte Cookie-Verwaltung

8

Ich bin mir nicht sicher, ob ich dies auf Sicherheit oder / stackoverflow posten sollte, weil ich um Sicherheit und Leistung besorgt bin.

Ich versuche eine zuverlässige Quelle für das Cookie-Management zu finden. Ich habe OWASP gelesen, also weiß ich ungefähr, was gefährlich sein kann.

Aber ich muss meine Benutzer mit Cookies authentifizieren. Gibt es eine vollständige Schritt-für-Schritt-Anleitung?

Was ich getan habe:

  • erzeugt eine zufällige und eindeutige Zeichenfolge.

  • Verknüpfen Sie die zufällige Zeichenfolge mit einem Benutzer in meinem Cache-Rndstring - & gt; Benutzer

  • Erstellen Sie einen sicheren und signierten Cookie. value = hash (rndstring + geheim) | rndstring

  • Wenn der Benutzer zurückkommt, überprüfe ich, ob die Hashes übereinstimmen und ob die rndstring in meinem Cache ist.

  • Wenn ja, holen Sie sich den Benutzer.

Ich denke, mein Ansatz ist fehlerhaft, weil ich es selbst gemacht habe.

Ein anderes Problem wäre, dass ich das Benutzerobjekt von der Datenbank in meinem Cache sichern würde. Wenn der Benutzer sein Profil aktualisiert, muss ich auch den Cache aktualisieren.

Ich benutze Java mit dem play2 Framework + mongoDB.

Welche Ressourcen können Sie mir empfehlen?

    
Maik Klein 07.08.2012, 08:34
quelle

2 Antworten

2

Ich denke, das ist eine Frage für Security StackExchange und ich stelle fest, dass Sie dort ähnliche Fragen gestellt haben, vor kurzem mit ausgezeichnete Antwort von DW . Es gibt viele Leute auf dem security.stackexchange.com-Forum, die Ihre Methodik kritisieren.

Ich persönlich würde nicht empfehlen, ein eigenes Session Management zu entwickeln, in der Tat würde ich davon abraten. Das "play framework" -Sitzungsmanagement wurde von vielen Leuten überprüft, während Ihrs nicht hat und leicht Schwachstellen haben kann, die Sie einfach verpasst haben. Ich würde die integrierte Sitzungsverwaltung verwenden, die von Ihrem gewählten Programmierframework bereitgestellt wird. Haben Sie die Dokumentation

gelesen?

Was die Ressourcen betrifft, sollten Sie sich die Secure Development Principles von David Rook ansehen - hier und hier .

Wenn Sie Ihre Meinung mit Hilfe von Cookies ändern, können Sie sich Web-Schlüssel ansehen, was eine Methode für Einfügen eines nicht identifizierbaren Tokens in eine URL.

Haben Sie beim Lesen von Owasp den neuesten Session Management-Cheatsheet gelesen? Ich denke, dass viele Ihrer Fragen dort beantwortet werden.

Eine letzte Ressource ist die SANS Top 25 Software-Fehler .

    
Mark Hillick 07.08.2012, 09:52
quelle
1

Ich würde empfehlen, dass Sie auch eine neue eindeutige Zeichenfolge generieren und Ihren Cookie-Wert jedes Mal aktualisieren, wenn Sie die Hashes überprüfen und sie übereinstimmen. Dies verbessert die Sicherheit Ihres Systems. Da die Wahrscheinlichkeit des Hackens im Falle eines Diebstahls von Cookies reduziert wird.

    
kapand 07.08.2012 09:50
quelle