Ich versuche derzeit, Sinatra zu begreifen, und ich bemerkte, dass es keine aktuelle Authentifizierung Edelstein wie Gerät für Schienen gibt. Ich habe mich entschieden, einfach mein eigenes Authentifizierungssystem zu erstellen, und meine Frage lautet: Was sind die wichtigsten Vorkehrungen, die ich treffen muss, um meine Benutzer sicher zu machen? Ich muss Passwörter in Hash-Form speichern, möglicherweise mit Salz, aber was noch? Bedenke, dass ich kein Sicherheitsexperte bin, würde diese Frage nicht stellen, wenn es anders wäre.Was ist für die Authentifizierung erforderlich, um sicher zu sein
Antwort
Try Passwort mit bcrypt gem
vorsichtig sein mit Sitzungen Hijacking
zum Beispiel
post "/signup" do
password_salt = BCrypt::Engine.generate_salt
password_hash = BCrypt::Engine.hash_secret(params[:password], password_salt)
#ideally this would be saved into a database, hash used just for sample
userTable[params[:username]] = {
:salt => password_salt,
:passwordhash => password_hash
}
session[:username] = params[:username]
redirect "/"
end
Könntest du bitte die Session-Hijacking näher erläutern? – Leo
Durch das Stehlen der Sitzungs-ID eines Benutzers kann ein Angreifer die Webanwendung im Namen des Opfers verwenden. http://guides.rubyonrails.org/security.html#session-hijacking –
Die Frage ist zu breit für [so]. https://meta.stackoverflow.com/questions/256328/vote-to-close-unclear-questions-unmittelbar-after-commentment und https://meta.stackoverflow.com/questions/260263/how-long-should- Wir warten auf ein Plakat, um eine Frage zu klären, bevor Sie schließen, könnte Ihnen bei der Beantwortung helfen. –
- 1. Welche Art von Benutzereinwilligung ist für die Firebase-Authentifizierung erforderlich?
- 2. Was ist für dist erforderlich?
- 3. Form Eingabe Validierung mit HTML genug, um sicher zu sein?
- 4. HTTP-Statuscode für "Client-Softwareupdate erforderlich" - Was ist zu verwenden?
- 5. Was ist erforderlich, um einen ADT in Clojure zu implementieren?
- 6. wie lua config-Datei zu machen, um sicher zu sein
- 7. Was ist die beste Funktion, um Benutzereingaben für die Datenbank sicher zu machen?
- 8. Wie sicher ist die Authentifizierung im MySQL-Protokoll?
- 9. Was ist Javascript 'erforderlich'?
- 10. Was ist erforderlich, um Ipython in Ironpython zu verwenden?
- 11. Was ist erforderlich, um TypeScripts Import/Export zu verwenden?
- 12. 401 vollständige Authentifizierung ist erforderlich, um auf diese Ressource zuzugreifen
- 13. Was ist die minimale xcode-Version, die erforderlich ist, um cordova ios 4.0 zu bauen?
- 14. Ist grundlegende Authentifizierung mit SSL sicher genug?
- 15. Authentifizierung erforderlich für Google Play veröffentlichte App
- 16. Warum ist erforderlich Hangfire Authentifizierung Armaturenbrett
- 17. Refactoring erforderlich, um die Testbarkeit zu verbessern
- 18. Was ist für eine C-Startroutine erforderlich?
- 19. Ist Firebase Cloud Messaging-Authentifizierung erforderlich?
- 20. Android-Konsole: Authentifizierung erforderlich
- 21. Was ist erforderlich, um Client für Crystal Reports von VS 2005 auf VS 2008 zu aktualisieren
- 22. Windows 8.1-Anwendung führt keine NTLM-Aushandlung durch, die für die Windows-Authentifizierung erforderlich ist
- 23. SonarQube/ANT Authentifizierung erforderlich für 'svn + ssh: //
- 24. Was sind die besten Android Tutorials, um professionell zu sein?
- 25. Java-Code, sicher sein
- 26. Tapping ist zweimal erforderlich, um die Tabellenzelle zu deaktivieren
- 27. Bewertung der FeatherJS-Authentifizierung erforderlich
- 28. cefsharp Proxy-Authentifizierung erforderlich
- 29. Ist ein Datenspeicher für die Combobox erforderlich?
- 30. Was ist erforderlich, um das Marshalling für eine COM-Schnittstelle zu aktivieren?
Dies ist ein bisschen breit ist und somit ungeeignet für SO zu verschlüsseln. Lesen Sie alles auf http://security.stackexchange.com/questions/tagged/authentication? xd – ndn
Bitte lesen Sie "[fragen]" und die verlinkten Seiten, zusammen mit "[mcve]". Wenn Sie Ihr eigenes Authentifizierungssystem schreiben, können Sie nicht in den Midstream springen. Ich würde empfehlen, als Teil eines bestehenden Projekts zu arbeiten, um es zu verbessern und zu lernen, was es braucht, und dann zu überlegen, ob Sie es wirklich übernehmen wollen. SO ist nicht der Ort, um diese Frage zu stellen, obwohl andere [se] -Seiten gut wären. –