2 Stimmen

Sicherheit für ein Instapaper-ähnliches Bookmarklet

Ich versuche, ein Bookmarklet zu erstellen, das etwas Ähnliches tut wie das von Instapaper. Ich brauche das Bookmarklet, um die URL der Seite, die der Benutzer besucht, und das Token des Benutzers zu senden (damit der Server den Benutzer identifiziert). Wie lässt sich das bewerkstelligen? Empfehlen Sie mir, eine POST-Anfrage zu senden oder eher die URL weiterzuleiten (z. B. http://example.com/USER_TOKEN/URL )?

Muss ich mir außerdem Sorgen machen, dass der Token des Benutzers gestohlen wird? Wenn ja, wie kann ich das handhaben?

1voto

vzwick Punkte 10730

muss ich mir Sorgen machen, dass der Token des Benutzers gestohlen wird?

Da alles, was Sie über einfaches HTTP übertragen, im Grunde genommen unverschlüsselter Klartext ist, müssen Sie sich in der Tat Sorgen machen, dass das Token gestohlen werden könnte.

Was imo noch wichtiger ist, ist die Tatsache, dass die Einbindung des Benutzer-Tokens in Ihr Bookmarklet ziemlich hack-ish wirkt:

  1. Was ist, wenn ein Rechner von mehreren Benutzern A, B und C benutzt wird?
  2. Die Benutzer A und B nutzen beide Ihren Dienst? Getrennte Bookmarklets?
  3. Benutzer C ist verärgert über etwas, das A getan hat - sein Bookmarklet auf einem Dutzend Pornoseiten anzuklicken, klingt doch nach Spaß, oder?

Ich würde etwas in der Art vorschlagen:

  • Übermitteln Sie die URL an einen GET ( wenn Sie viel Wert auf Leistung legen ) oder POST ( wenn Sie CRUD richtig hinbekommen wollen ) Route.
  • Server-seitig: Prüfen Sie, ob eine Benutzersitzung existiert (über Cookies, natürlich).
    • Wenn ja, verarbeiten Sie Ihre Daten und senden Sie den Erfolgs-Callback als JSONP.
    • Wenn nicht, wird ein Fehler-Callback als JSONP gesendet, der ein "Bitte anmelden"-Popup/Overlay auslöst.

Extrapunkte gibt es dafür, dass sich das "Bitte anmelden"-Dingsbums die URL merkt, die der Benutzer zu speichern versucht hat, so dass er nach dem Einloggen nicht erneut absenden muss.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X