Beste Weg zum Schutz der Integrität der ajax-request

Baue ich eine Drupal-website mit einer Menge von user-spezifischen Informationen, die gepostet werden mit Hilfe von jQuery/ajax. Die information selbst ist nicht sehr empfindlich, es ist nur wichtig zu überprüfen, dass die Formular-Daten nicht manipuliert wurden tools wie Firebug, sowie sicherzustellen, dass die information wirklich ist, beantragt von den angegebenen Benutzer. In anderen Worten, ich versuche herauszufinden, der beste Weg zum Schutz der Integrität und Authentizität der Daten bei der Buchung mit ajax.

Idealerweise würde ich gerne nutzen, um einige bekannte message authentication system, wie der HMAC-Algorithmus. Aber da dieses enthält einen symmetrischen Schlüssel, ich sehe nicht, wie kann ich verschlüsseln, die POST-Daten, ohne dass der geheime Schlüssel in meine javascript-Datei (was natürlich für jeden sichtbar).

Bitte korrigieren Sie mich, wenn ich habe die falsche Vorstellung darüber, wie das funktionieren sollte.

Zum Beispiel, die info, die ich brauche zu senden

field1=x&field2=y&uid=10

...dann berechne den hash-Wert der Daten zusammen mit einem geheimen Schlüssel. Ist dies möglich, ohne dass die hash-Funktion in meinem javascript-code?

CHECKSUM: hash(postdata, "secret_key")

... und schließlich anfügen Prüfsumme original postdata.

field1=x&field2=y&uid=1&c=CHECKSUM

Alternative

Eine alternative, die ich aber war mit der session-ID des angemeldeten Benutzers. Dies jedoch würde nicht überprüfen Sie die Integrität der Nachricht...

Beim erzeugen von Formular mit PHP, die ich erzeugen kann, die einen versteckten Eingang mit folgenden

CHECKSUM: hash(session id for the current user, "secretkey")

Was ich dann posten würde, die mit ajax ist

field1=x&field2=y&uid=10&c=CHECKSUM

Mit diesem wäre es ziemlich sicher zu authentifizieren, die entsprechenden Benutzer (wieder pseudo-code)

ssid = SELECT ssid FROM sessions WHERE uid = $_POST[uid]
if(ssid && hash(ssid, "secretkey") == $_POST[c]) {
     //User OK
} else {
     //Invalid user
}
  • "es ist nur wichtig zu überprüfen, dass die Formular-Daten nicht manipuliert wurden tools wie Firebug". Wenn jemand manipulieren kann, die mit der POST Daten, Sie können Neuberechnen einer Prüfsumme, die mit Leichtigkeit, da Sie, um sich in Ihrem Javascript-code-Basis irgendwo. Ich glaube nicht, dass die Zeit, die Sie verbringen würde auf dieser wäre es Wert.
  • OK, also wie würdest du das problem lösen?
  • Was ist falsch mit Menschen mit Firebug?
Schreibe einen Kommentar