Ich erstelle eine einfache API mit der Rails-API und möchte sicherstellen, dass ich hier auf dem richtigen Weg bin. Ich verwende devise, um Anmeldungen zu verarbeiten, und habe mich für die token_authenticatable
Option von Devise entschieden, mit der ein API-Schlüssel generiert wird, den Sie bei jeder Anforderung senden müssen.
Ich kopple die API mit einem Backbone / Marionetten-Frontend und frage mich im Allgemeinen, wie ich mit Sitzungen umgehen soll. Mein erster Gedanke war, den API-Schlüssel nur im lokalen Speicher oder in einem Cookie zu speichern und beim Laden der Seite abzurufen, aber etwas über das Speichern des API-Schlüssels auf diese Weise störte mich aus Sicherheitsgründen. Wäre es nicht einfach, den API-Schlüssel zu erhalten, indem Sie entweder im lokalen Speicher / im Cookie nachsehen oder eine durchgehende Anfrage abhören und ihn verwenden, um sich als Benutzer auf unbestimmte Zeit auszugeben? Ich setze derzeit den API-Schlüssel bei jeder Anmeldung zurück, aber selbst das scheint häufig zu sein - jedes Mal, wenn Sie sich auf einem Gerät anmelden, bedeutet dies, dass Sie bei jedem anderen abgemeldet sind, was eine Art Schmerz ist. Wenn ich diesen Reset fallen lassen könnte, würde er sich unter dem Gesichtspunkt der Benutzerfreundlichkeit verbessern.
Ich kann mich hier völlig irren (und hoffe, dass ich es bin). Kann jemand erklären, ob die Authentifizierung auf diese Weise zuverlässig sicher ist, und wenn nicht, was wäre eine gute Alternative? Insgesamt suche ich nach einer Möglichkeit, wie Benutzer sicher beim API-Zugriff angemeldet bleiben können, ohne häufig eine erneute Authentifizierung zu erzwingen.
quelle
urlsafe_base64
generieren , wird eine url-sichere Zeichenfolge generiert. Es ist alles im Namen. Verwenden Sie, es sei denn, Sie möchten Ihr Token in Ihrer URL verwenden ( was Sie nicht sollten )hex
.Laut README des Projekts wurde das Juwel devise_token_auth von diesem StackOverflow-Beitrag inspiriert: https://github.com/lynndylanhurley/devise_token_auth
quelle
Sie können versuchen, rails4 mit Ihrer API zu verwenden. Sie bietet mehr Sicherheit und verwendet devise 3.1.0rc
In Rails 4.0 wurden mehrere Features in Edelsteine extrahiert.
http://blog.envylabs.com/post/41711428227/rails-4-security-for-session-cookies
Devise 3.1.0.rc läuft sowohl auf Rails 3.2 als auch auf Rails 4.0. http://blog.plataformatec.com.br/2013/08/devise-3-1-now-with-more-secure-defaults/
Gerät ist
TokenAuthenticatable
in 3.1.0rc veraltet, aber Sie können Ihre eigeneTokenAuthenticatable
Methode für Sicherheitsprobleme erstellen . Es ist zuverlässiger und sicherer.Für Token, Session Store, gehen Sie zu http://ruby.railstutorial.org/chapters/sign-in-sign-out und http://blog.bigbinary.com/2013/03/19/cookies-on-rails .html für mehr Verständnis.
Zuletzt sollten Sie diese Art der Verschlüsselung und Entschlüsselung " Gespeicherte verschlüsselte Daten können nicht entschlüsselt werden " durchlaufen , um mehr Sicherheit zu erhalten.
quelle