Überprüfung, ob der Benutzer den Cookie-Wert manuell geändert hat

8

Ich bin mit einem Login-System für mein Projekt beschäftigt.

Nur für einen zusätzlichen Schritt zur Sicherheit. Wie kann ich prüfen / feststellen, ob ein Benutzer einen Cookie-Wert manuell geändert hat?

Gibt es einen einfachen Weg, dies zu tun? Oder muss ich eine zusätzliche Sitzungsvariable setzen und sie damit abgleichen? Ist eine normale ASP.Net Session vom Browser nachvollziehbar? Und für den Benutzer sichtbar?

Danke.

    
Marc Uberstein 27.07.2011, 13:38
quelle

4 Antworten

9

Sie könnten eine digitale Signatur an den Cookie-Wert anhängen und die Signatur überprüfen, wenn Sie sie zurücklesen. Auf diese Weise, wenn der Cookie-Wert manipuliert wird, wird es sehr offensichtlich sein.

%Vor%

Bearbeiten: Der Encoder wurde so korrigiert, dass er explizit UTF-8 ist.

Wie immer sollten Sie auch sicherstellen, dass Sie vor dem Aufruf des Strings etwas Salz zu Ihrem String hinzufügen, siehe: Secure Hash und Salz für PHP-Passwörter

    
Bill Brasky 27.07.2011, 13:45
quelle
2

Wenn Sie mit so sensiblen Informationen umgehen müssen, würde ich vorschlagen, sie nicht in Benutzercookies zu speichern. Verwenden Sie stattdessen sessions , um solche Werte zu speichern, da der Benutzer diese Werte nicht manipulieren kann.

    
Muhammad Akhtar 27.07.2011 13:43
quelle
1

Warum verschlüsseln Sie den Cookie-Wert nicht? Auf diese Weise ist es schwierig für den Benutzer, es tatsächlich zu ändern. Wie die vorherige Antwort erwähnt, ist Cookie, wenn es wirklich sensibel ist, nicht der Ort, um es zu speichern, aber die Verschlüsselung gibt Ihnen ein wenig mehr Schutz.

    
coder net 27.07.2011 13:44
quelle
0

Fügen Sie Ihrem Cookie eine zweite Variable hinzu, die für den ersten Wert eindeutig ist.

On Page_Load vergleicht die beiden Werte mit der Datenbank.

Wenn sie keinem Datensatz entsprechen, löschen Sie den Cookie.

    
Curt 27.07.2011 13:47
quelle