この質問は少し抽象的かもしれませんが、私はパスワード回復を実装するための最良の/標準的な方法が何であるか不思議でした。私は今すぐ自分のコードに実装しようとしていますが、私が使い始めている方法はちょっと混乱しているようですが、これを行うための "Railsの方法"が何であるか知りたかったのです。助言がありますか?Rails - Password Recovery
3
A
答えて
6
パスワードは、暗号化されるのではなく、一般的にはハッシュ(理想的には塩)で暗号化されていなければなりません。次に、ユーザーがパスワードを正しく入力したかどうかを確認するために、入力したものを取り出し、同じsaltおよびhash関数を使用して、データベースにあるハッシュと一致するかどうかを確認します。
このようにして保存されたパスワードは復元できません。パスワードを忘れた場合の回復について移動する標準的な方法は次のとおりです。
- ボブは彼の電子メールアドレス(またはユーザ名または任意)を入力し、「パスワードトークンリセット」彼は
- が誰であるかを示すために、一般的に長い文字列を生成しています文字と数字の組み合わせで、何らかの方法でBobに関連付けられたデータベースに格納されます。
- ボブは、通常、例えばURL(、
http://fakesite.com/reset_password?token=long_token_generated_in_step_2
に、何らかの方法で取り付けたトークンをリセットするパスワードでメールを送信されます。 - ボブはそのURLを訪れると、サイトはリセットトークンが有効であることを確認し、ボブが可能その後、彼は失われたパスワードと同じようにハッシュ化された/塩漬けされ新しいパスワードを選択する。
考案、Railsのための認証の宝石は、このパターンに従っRecoverable strategyを持っている。
を一部のサイトでは、追加のセキュリティチェックが適用されますce電子メールは100%安全ではありません。たとえば、パスワードリセット電子メールを取得するには、ユーザーが秘密の質問に回答する必要があります(通常、アカウントの作成時に設定されます)。
関連する問題
- 1. Cassandra Cluster Recovery
- 2. SQL Server 2005データベース 'In Recovery'
- 3. "cap ec2onrails:setup" requres password
- 4. mysql root password rest
- 5. password redacting logger
- 6. psql fe_sendauth no password
- 7. Git submodule password prompt
- 8. mojo :: mysql password with @
- 9. TextBox Password Char
- 10. ASP:NET Confirm Passwordフィールド
- 11. Redis AUTH with random password
- 12. Laravel password reset "No Sender"
- 13. PHP Forgot Password機能
- 14. MySQL PASSWORD()関数のJDBCRealmダイジェスト
- 15. asp:TextBoxのTextMode = "password"のテキスト
- 16. 春のセキュリティ:password-encoderとStandardPasswordEncoder
- 17. sfDoctrineGuardとForgot Password機能
- 18. Regex in php about passwordフィールド
- 19. SQL Server 2005 "NORECOVERY"で復元されたデータベースで "RECOVERY"を実行
- 20. mvn --encrypt-master-password <password>はどのように動作しますか?
- 21. AppFuse StrutsフレームワークでのPassWordの管理
- 22. sha( '$ password')空のセットで返す
- 23. Drupalで「Remember my password」を追加する
- 24. md5(sha1(password))できますか?
- 25. html auto fill username&passwordを削除するには?
- 26. mysqladminとpassword()の間でハッシュ値が異なる
- 27. PAsswordタイプのカスタムテキストボックスの罫線を設定する方法は?
- 28. Hibernate username password大文字と小文字の区別がOracle11gで
- 29. Password Managerのパスワードはどのように保存しますか?
- 30. iphone経由でmysql password()ハッシュにアクセスする
Deviseにはほとんどのパターンが実装されています。見てみましょう。https://github.com/plataformatec/devise – clyfe