ページからページへのユーザー認証状態を認証および追跡するための最良の方法は何ですか? セッション状態と言う人もいれば、Cookie と言う人もいます。
ユーザーの ID を持つセッション変数を使用して、認証時にユーザーの情報を持つカスタム User クラスを開始することはできますか。次に、すべてのページで、セッション変数がまだアクティブであることを確認し、User オブジェクトから基本的なユーザー データにアクセスしますか?
何かご意見は?良い例はありますか?
ページからページへのユーザー認証状態を認証および追跡するための最良の方法は何ですか? セッション状態と言う人もいれば、Cookie と言う人もいます。
ユーザーの ID を持つセッション変数を使用して、認証時にユーザーの情報を持つカスタム User クラスを開始することはできますか。次に、すべてのページで、セッション変数がまだアクティブであることを確認し、User オブジェクトから基本的なユーザー データにアクセスしますか?
何かご意見は?良い例はありますか?
「セキュリティ」のために Cookie よりもセッションを優先する場合の問題は、セッションが Cookie を使用してユーザーを識別するため、Cookie に関する問題はすべてセッションに存在することです。
セッションを使用する際に留意すべきことの 1 つは、データの局所性です。任意の時点で複数の Web サーバーに拡張する予定がある場合は、セッション オブジェクトに大量のデータを格納することに十分注意する必要があります。
.NET を使用しているため、基本的には、これを処理する独自のセッション ストア プロバイダーを作成する必要があります。ここではスケーリング中に、それ以上追加しないでください)、StateServer には多くの容量の問題があります。(過去に、memcached セッション ストア プロバイダーを使用して、この問題に対処することに成功しました)。
署名付き Cookie を検索して、通常の Cookie やセッションの代わりにそれを使用することを検討します。これにより、多くのセキュリティ上の問題が解決され、セッションの局所性の問題が解消されます。リクエストごとにやり取りされるため、データは控えめに保存してください。
それを行う完璧な方法はありません。Cookie に保存すると、Cookie が盗まれる可能性があることを非難されます。セッションに保存すると、セッションがハイジャックされる可能性があるため、高射砲になります。
個人的には、クライアントに保存されるのはセッション キーだけであるため、セッションの方が信頼性が高いと考える傾向があります。実際のデータはサーバー上に残ります。必要に応じて、カードを胸に少し近づけてプレイします。ただし、これは私の好みに過ぎず、優れたハッカーは粗雑なセキュリティを通過することができます。
何をするにしても、これを自分で実装しようとしないでください。あなたはそれを間違えるでしょう。特定のプラットフォームで提供される認証システムを使用します。また、認証トークンを保護するための適切なセキュリティ対策が講じられていることを確認する必要があります。
それが最善の方法かどうかはわかりませんが、私たちはその方法に満足しています。
ユーザーの認証時にインスタンス化するカスタム ユーザー オブジェクトがあり、Session を使用してアプリケーション全体でこのオブジェクトを維持します。
一部のアプリケーションでは、Cookie の使用と組み合わせて、セッションを継続的に延長します。
Cookie とセッションだけでは十分ではありません。これらはユーザーとユーザーの行動を追跡するために使用するツールですが、データベースを使用して、アプリケーションを保護するためにも使用できるユーザーに関する情報を永続化することについて考える必要があります。
セッションは Cookie です...