Code On Fire Passionate Über Cool Code

28 Jul/09 ein

Wie Ajax Secure Login Credentials für

Viele JavaScript und andere Clients, die Nutzung von REST Web Services oder andere machen müssen Anmeldeinformationen verwenden, um dem Endbenutzer Zugang zu diesen Diensten ermöglichen.

Es gibt mehrere Möglichkeiten, um die Anmeldeinformationen an den Server zu erhalten. Eine beliebte Methode ist die Verwendung HTTP1.1 Auth, entweder verdauen oder Basic. Das Problem bei dieser Methode ist, dass sie nicht verstecken Sie Ihre Anmeldeinformationen aus der Welt. Anybody Listening in auf Ihrem Web-Verkehr ist im Wesentlichen in der Lage, Ihre Anmeldeinformationen aus dem Kopf bekommen.

Eine andere Methode, wahrscheinlich eher von der Mehrzahl verwendet wird, um Login-Zugangsdaten in die POST oder GET gehören Anrufe gemacht, um Web-Services. Und das ist genauso ausgesetzt.

http://mywebserver.com/mywebservice/?user=admin&pass=1234
Sicherheit nicht zu sehr hohen Transport.

SSL ist wirklich der einzige Weg, um sicherzustellen, dass Ihre Anmeldeinformationen versteckt aus dem Rest der Welt bleiben.

Server generierte Token zum Verbergen von Anmeldeinformationen

Ich habe eine andere Taktik übernommen. Es läuft wie folgt ab:

  1. Der Client fordert eine zufällige Token vom Server während es verwenden Session.
  2. Sobald sie das Token erhält der Kunde verkettet das Token an das Ende des Passwortes, und dann macht einen MD5-Hash über die ganze Sache.
  3. Wenn der Server-Anmeldeinformationen benötigt werden von der Client übergibt dann user = 'username' = & passhash [md5 (Passwort-Token +)]
  4. Der Server vergleicht diese mit dem gleichen Prozess am Ende ist es. Wenn die beiden Hashes stimmen, dann die Passwörter in diesen Hashes verwendet wurde, um die gleichen wie gut sein.

Die Schönheit dieser Methode ist, dass es zwar eine 100% zuverlässige Methode zur korrekten Identifizierung der richtigen Anmeldeinformationen ist, ist es auch unmöglich, den Prozess umzukehren und sich das Kennwort zurück.

Unter Dingen einen Schritt weiter

Der erste Schritt war für mich zu verwenden [md5 (Passwort-Token +)]. Ich habe jetzt aktualisiert sie verwenden eine Vielzahl von Informationen möchte ich zu verbergen:
[Md5 (Benutzername + Passwort + + my_ip Token)], der so gebaut ist auf einige integrierte Cross-Site-Scripting-Verschleierung

Hinterhältig und sehr eifrige Hacker kapern Ihrer Sitzung noch mit einiger Mühe. Und Sie können sicherstellen, ist es nicht wert sein / ihr während durch regelmäßiges Auswechseln der Token für die aktuelle Sitzung.

KnowledgeTree JavaScript API

Als Entwickler auf KnowledgeTree Zur Zeit arbeite ich am Set von JavaScript-Bibliotheken, die eine API-Server-Funktionalität wird über aussetzen. Eine Kernkomponente der KnowledgeTree ist es strenge Sicherheitsvorkehrungen. Die oben erwähnten Methode (oder eine Variante davon) ist in den Prozess des Seins für KnowledgeTree JAPI umgesetzt.

* KnowledgeTree ist ein OpenSource Document Management System für SMB auf Enterprise-Ebene Einrichtungen.

Vorwärts und aufwärts!

Genießen Sie diesen Artikel?

Betrachten Sie abonnieren Sie unseren RSS-Feed!

Kommentare (1) Trackbacks (1)
  1. Ich merke, viele Leute kommen hier auf der Suche nach dem MD5-Script benutze ich. Es gibt viele von ihnen gibt, wählte ich diese verwenden:

    http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_md5/

    Denken Sie daran, die utf8-Funktion aus dem gleichen Ort gehören zu MD5-Werke zu sichern.


Hinterlasse einen Kommentar