2013-09-23 6 views
7

Ich plane eine erholsame Anmeldung in einer nicht SSL verschlüsselten Website, indem ich den Benutzernamen/das Passwort vom Benutzer in Javascript Variable gespeichert.Wie man ein Passwort in angularjs sicher speichert

Jedes Mal, wenn der Benutzer eine Anfrage macht, würde meine App zuerst ein Token vom Server anfordern, dann kombiniert es mit dem gespeicherten $ scope.password, Hashed dann an den Server zur Validierung gesendet. Wenn die Validierung korrekt ist, wird die Anfrage fortgesetzt, andernfalls wird sie gestoppt.

Außerdem erstellt der Server jedes Mal, wenn die Validierung durchgeführt wird, ein neues Token, unabhängig davon, ob es gültig ist oder nicht.

Nach meiner Kenntnis wäre es sicher, wenn ich sofortige Funktionen verwende, aber da ich angularjs verwenden werde, glaube ich nicht, dass es möglich ist, also wie stelle ich sicher, dass der Benutzername/das Passwort in gespeichert wird die Erinnerung ist nicht hackbar?

Danke.

+0

Das unbearbeitete Passwort auf der Clientseite ist ** nie ** sicher. Ihr Problem sieht so aus, als würden Sie das Passwort als Startwert für Hashing verwenden. Können Sie nicht einfach Server nach einem "zufälligen" (d. H. Unique Pro User) Seed fragen und diesen auf der Client-Seite speichern? – freakish

Antwort

2

Sie können nicht verhindern, dass jemand den Benutzernamen und das Passwort aus dem Speicher liest, aber Sie könnten sich etwas Mühe geben, was an den Server gesendet wird.

Sie sollten versuchen, das Kennwort und den Benutzernamen zu hashen, wenn Sie sie an den Server senden. Verwenden Sie ein Salz, das für die Benutzersitzung eindeutig ist, daher ist es unberechenbarer und erfordert eine vollständige Aufzeichnung des gesamten Datenverkehrs.

Dies wird nicht zu absoluter Sicherheit führen, aber die Messlatte für irgendjemanden höher legen, alles zu lesen.

S.S .: Ich würde dringend empfehlen, SSL zu verwenden.

1

Ich denke, Sie müssen definieren, was Sie bedeuten "sicher". Definieren Sie insbesondere genau, wogegen Sie sich schützen möchten und warum Sie nicht vor den üblichen Angriffsvektoren schützen.

Wenn Sie nur versuchen, das physische Gerät gegen Speicherlesevorgänge zu schützen, dann haben Sie Pech, da NOTHING das tun kann. Ja, es gibt Möglichkeiten, es schwieriger zu machen, aber letztendlich, wenn sie physischen Zugriff auf das Gerät haben, wird nichts, was Sie tun können, einen Verlust verhindern.

Wenn Sie über Menschen in der Mitte oder ähnliche Art Angriffe sprechen, dann durch Ignorieren des besten Tools in Ihrem Kit (SSL-Zertifikate) haben Sie bereits verloren.

Die einzigen Websites, die durch Caching arbeiten und ständig den Benutzer/Pw erneut einreichen, sind diejenigen, die von denen, die keine Ahnung haben, was sie tun, weil es eine sehr schlechte Praxis ist.

Verwandte Themen