2014-11-27 19 views
5

Wie im Titel angegeben, wann sollte das Gerät verwendet werden und wann sollte ich stattdessen meine eigene Authentifizierung implementieren. Im Wesentlichen frage ich mich, ob die erstellten Authentifizierungen in einigen Tutorials (wie this) sicher und sicher sind.Wann Devise vs. Erstellen meiner eigenen Authentifizierung

Wenn ich keine E-Mail-Bestätigung, Wiederherstellbarkeit, etc. (eine Menge des "Jazz" mit Devise) benötigen, würde die Kontoinformationen genauso sicher sein, als ob ich meine eigene erstellt hätte?

Wenn Sie noch verwechselt werden kann, welche Antwort ich suche - etwas, das Entwickeln Sie, wann immer möglich verwenden sollte/wenn Sie Konten haben? Oder sollte es wirklich eine Entscheidung sein?

Hinweis: Ich beziehe mich nicht speziell auf Devise, alle Authentifizierungssteine ​​können ersetzt werden.

Antwort

6

benutzte ich Edelsteine ​​wie Devise zu verwenden, bis Rails die has_secure_password zu Active hinzugefügt. Jetzt rolle ich immer meine eigenen, da ich am Ende immer ein paar benutzerdefinierte Sachen brauche, die es schwierig machen, sie in einer vorhandenen Bibliothek zu implementieren.

Ryan Bates haben ein ausgezeichnetes Video auf gerade dieses Thema here.

1

Meiner Meinung nach sollten Sie es nach Ihrem Projekt entscheiden. Wenn Sie an einem kleinen Web-Service mit minimalistischer Funktionalität arbeiten, können Sie Ihre eigene Authentifizierung mit den von Rails bereitgestellten Instrumenten hinzufügen. Aber wenn Sie an einem so genannten "Enterprise", einem großen Projekt mit schnell wachsender Funktionalität, arbeiten, sollten Sie unbedingt devise verwenden, da Sie mit diesem Juwel keine Zeit für den Aufbau vorhandener Auth-Funktionen aufwenden müssen, es ist sehr einfach in der Wartung und sicher .

+1

ich sehe, würden Sie sagen auch, dass, wenn ich brauche zwei verschiedene Arten von Konten - und man muss devise - ich sollte, ohne Zweifel, dass beide Geräte nutzen für von ihnen (auch wenn die andere nicht viele Funktionen benötigt) ? – Vasseurth

+0

@Vasseurth Ich kenne Ihre Bedingungen nicht, aber ja, ich denke schon. Ich sehe nichts Schlechtes in zusätzlichen Funktionen, die nicht von anderen Kontotypen verwendet werden (ich nehme an, Sie sprechen von einem Modell mit verschiedenen Benutzertypen, wenn Sie mehrere Modelle haben - Sie können diese natürlich separat konfigurieren). –

6

meine eigene Authentifizierung

Immer, wenn Sie anfangen zu denken implementieren, ob Sie Ihre eigene Authentifizierung erstellen sollten, müssen Sie aufhören. Nimm diese Idee, zerfetze sie, lösche sie mit Benzin und verbrenne sie!

Authentifizierung ist schwer. Es gibt Feinheiten, die bei der Authentifizierung existieren, und Entwickler, die an die CRUD-Stil-Programmierung gewöhnt sind, werden sie vermissen. Dies soll keine Beleidigung sein. Ich bin einer dieser Programmierer, und ich arbeite in der Sicherheit. Erkenne deine Stärken und Schwächen.

Devise (und beliebtesten Authentifizierungs-Frameworks) haben Tausende von Stunden von Code-Review, Design, Test, und die Zeit in der Produktion gegenüber dem Rahmen hatte, dass Sie gehen, sich zu rollen.

ich wrote a blog post about a "smart" security feature, die tatsächlich ein Unternehmens Sicherheit noch schlimmer gemacht. Dies ist ein gutes Beispiel dafür, wie subtil Authentifizierung und Sicherheit sein kann!

Verwandte Themen