私のサイト(違いがあればRailsサイト)を実装する際の私の設計上の優先事項の1つは、ユーザーごとに便利な機能を提供しながら、ユーザーがさらに別のユーザー名とパスワードを作成する必要をなくすことです。
私がこれを行うことを計画している方法は次のとおりです。
- ユーザーがサイトに情報を入力します。情報は、サーバー側のセッションを介してユーザーに関連付けられます。
- ユーザーが情報の入力を完了すると、サーバーはアクセスURLを電子メールでユーザーに大まかに次の形式で送信します。
http://siteurl/<user identifier>/<signature: HMAC(secret + salt + user identifier)>
- ユーザーがURLをクリックすると、サイトはユーザーIDとソルトを検索し、サーバーに保存されているシークレットを使用してHMACを計算し、計算されたHMACと署名が一致するかどうかを認証します。
私の質問は、これは私がやろうとしていることを達成するための合理的に安全な方法ですか?それを役に立たなくする一般的な攻撃はありますか?ユーザー名/パスワードを避けたいという私の願望を放棄するやむを得ない理由はありますか?このテーマに関する必読の本や記事はありますか?
私はクレジットカード番号や非常にプライベートなものを扱っていませんが、それでも情報を適度に安全に保ちたいと思います。