CPU
Lieutenant
- Registriert
- Jan. 2006
- Beiträge
- 704
Hallo,
ich baue mir gerade einen Plan, wie ich einen sicheren Bereich mit AJAX erstelle, der ohne ein Neuladen der Seite auskommt. Natürlich wird es keine 100-%-ige Lösung geben und SSL gibt es auch noch (aber nur für Leute mit genügend Geld ... ;-)), aber mit Ajax kann z.B. das Passwort schon beim Client gehashed werden und dies ist allemal sicherer als ein PHP-Basic-Login.
Nun, diese Seite habe ich schon gefunden: http://www.jamesdam.com/.../login... und ich finde das vorgestellte System nicht schlecht. Bis auf die Tatsache, dass für jeden Seitenladen ein Seed in der DB erstellt wird. Dies könnte zu einem Performance-Problem werden - kann aber z.B. dadurch behoben werden, dass erst nach dem Klick auf "Login" ein Seed angefordert wird.
Aber:
Hier ist ja nur das Schema einer Anmeldung aufgezeigt. Was ist aber nun, wenn der Benutzer erfolgreich angemeldet ist? Nun müssen ja vom Server z.B. vertrauliche Inhalte (die nur Leuten sichtbar sind, die authorisiert sind) geladen werden. Wie kann man nun den Benutzer prüfen? Zum einen speichert man ja die "Sitzungs-Ip", die bis zur Neuanmeldung gilt. Während dieser Zeit nimmt PHP nur von dieser IP die Anfragen entgegen.
Wie wäre es, wenn man mit JavaScript das gehashte Benutzerpasswort Clientseitig speichert, und vor jeder Anfrage einen Seed vom Server anfordert, diesen dann mit dem Passwort hashed und dann zusammen mit der "richtigen" Anfrage an den Server sendet?
Kann es da zu Sicherheitsproblemen führen? Oder vielleicht zu Trafficproblemen? Oder gibt es eine bessere Lösung?
Ich bin dankbar für jeden Denkanstoß,
CPU
ich baue mir gerade einen Plan, wie ich einen sicheren Bereich mit AJAX erstelle, der ohne ein Neuladen der Seite auskommt. Natürlich wird es keine 100-%-ige Lösung geben und SSL gibt es auch noch (aber nur für Leute mit genügend Geld ... ;-)), aber mit Ajax kann z.B. das Passwort schon beim Client gehashed werden und dies ist allemal sicherer als ein PHP-Basic-Login.
Nun, diese Seite habe ich schon gefunden: http://www.jamesdam.com/.../login... und ich finde das vorgestellte System nicht schlecht. Bis auf die Tatsache, dass für jeden Seitenladen ein Seed in der DB erstellt wird. Dies könnte zu einem Performance-Problem werden - kann aber z.B. dadurch behoben werden, dass erst nach dem Klick auf "Login" ein Seed angefordert wird.
Aber:
Hier ist ja nur das Schema einer Anmeldung aufgezeigt. Was ist aber nun, wenn der Benutzer erfolgreich angemeldet ist? Nun müssen ja vom Server z.B. vertrauliche Inhalte (die nur Leuten sichtbar sind, die authorisiert sind) geladen werden. Wie kann man nun den Benutzer prüfen? Zum einen speichert man ja die "Sitzungs-Ip", die bis zur Neuanmeldung gilt. Während dieser Zeit nimmt PHP nur von dieser IP die Anfragen entgegen.
Wie wäre es, wenn man mit JavaScript das gehashte Benutzerpasswort Clientseitig speichert, und vor jeder Anfrage einen Seed vom Server anfordert, diesen dann mit dem Passwort hashed und dann zusammen mit der "richtigen" Anfrage an den Server sendet?
Kann es da zu Sicherheitsproblemen führen? Oder vielleicht zu Trafficproblemen? Oder gibt es eine bessere Lösung?
Ich bin dankbar für jeden Denkanstoß,
CPU