私は自分のサイトのログインページを作成しています。私は考えていた、ランダムな64ビットの数字を生成し、httpOnlyのクッキーと一緒にDBに格納する良い方法は、データを格納するだろうか?ランダムなクッキーがデータベースのランダムなクッキー+ userIdと一致するかどうかをチェックするページを受け取ります(これは新しいmsgの数を示すツールバーです)。ログインページの作成とユーザーの認証
これは問題ありませんか?ところでC#ASP.NET
私は自分のサイトのログインページを作成しています。私は考えていた、ランダムな64ビットの数字を生成し、httpOnlyのクッキーと一緒にDBに格納する良い方法は、データを格納するだろうか?ランダムなクッキーがデータベースのランダムなクッキー+ userIdと一致するかどうかをチェックするページを受け取ります(これは新しいmsgの数を示すツールバーです)。ログインページの作成とユーザーの認証
これは問題ありませんか?ところでC#ASP.NET
を使用して
あなたは、乱数のための安全なソースを持って、私には合理的ですね。悪い(すなわち予測可能な)ランダムジェネレータは、大きなセキュリティリスクです。
おそらくASP.NET Profilesがお手伝いします。既存のプロファイルプロバイダを使用する場合はSqlProfileProviderの定義を確認してください。データベースが何か他のものになった場合は、常にimplement your ownとすることができます。
ランダムな64ビット番号ではなくGUIDを使用することをお勧めします。 GUIDは、すべての実用的な目的のために、一意であることが保証されています。
実装しようとしているセキュリティロジックに関しては、このパターンを採用している場合にのみ、質問に詳細な情報が必要なので、これが機能するかどうかはコメントできません。
ランダム64ビットは、セッションIDまたはログインIDです。ユーザーが他のユーザーのユーザーID(またはGUID)を使用するようにCookieを偽装した場合、WebロジックはランダムなloginIdが一致するかどうかをチェックします。偽造されていない場合。また、ログアウトをクリックするか、別の場所からログインする(新しいランダム/ログインIDを引き起こす)ことによって、Cookieの有効期限の日付とシンプルなログインを無効にすることもできます。 –
GUIDを使用しているDitto – Phil
@acidzombie - 私はそれに応じて私の回答を編集しました –