Folgende Überlegungen stecken dahinter:
Dem Nutzer ist bekannt, dass JavaScript für die Nutzung des Dienstes notwendig ist.
SSL kann sich der Kunde nicht leisten.
Sicherheit soll erhöht werden.
Ein User muss sich zunächst einloggen. Hierfür bekommt er ein Formular mit 2 sichtbaren und 2 unsichtbaren Feldern:
sichtbar: (wie bei einem üblichen LogIn)
Name
Passwort
unsichtbar:
zufälliger von JavaScript generierter String -> späterer Verschlüsselungs-Key
Hash des Passworts; wird von JavaScipt aktuell gehalten bei Eingabe des Passwortes
Zum Login wird per JavaScipt/AJAX der Name, der Verschlüsselungs-Key und der Hash des Passwortes an ein PHP-Skript geleitet.
Das PHP-Skript prüft wie üblich Name und Passworthash. Konnte sich der User erfolgreich einloggen wird der User serverseitig in einer Datenbank als eingeloggt vermerkt und der zeitlich begrenzt gültige Verschlüsselungs-Key gespeichert.
Per AJAX lassen sich nun vom Server die Daten nur mit diesem Verschlüsselungs-Key verschlüsselt nachladen. Das aufgerufene JavaSkript kennt jedoch diesen Key auch und kann die Daten Client-Seitig entschlüsseln.