2011-07-09 14 views
2

にはどうすればセキュリティ上の問題をせずにログインしているユーザーを覚えていることができますか?現在、IDとGUIDを2つの異なるクッキーに格納し、セッションが存続していないときにそれらを比較しています。一致した場合は、セッションを再作成します。 Btw、idとguidの両方が暗号化されていません。クッキーの安全性の問題

は十分にこの方法が安全である、または私はむしろ明確な道をたどる必要がありますか?

答えて

1

クッキーが簡単にXSSの使用によって盗まれたことができますので、あなただけの1クッキーまたは2に情報を配置する場合盗難はそれらすべてがかかりますので、重要ではありません。

私は、より複雑な手順で解決してきた:私は1枚の暗号化(同様に動作しますが、2枚のクッキー)2部に分けクッキー、固定1およびその他の変数の各セッションを置きます。どちらもサーバー側に保存されています。これらはセッション識別子のみであり、Cookieに含まれるわかりやすい情報ではなく、ユーザーIDとの対応がサーバーに保存されます。

偽のユーザーが盗まれたCookieでアカウントを入力すると、変数部分(またはCookie)が変更されるため、実際のユーザーが再び接続すると入力できなくなり、不正アクセスが発生したという証明が得られます:盗難によるさらなるアクセスを避けるために、サーバー側の固定セッション(固定部分またはクッキーによって定義される)を削除することができます。実際のユーザは新しいログイン情報を使用して新しいセッションを作成し直します。パスワードのリセット(クッキーから直接アクセスできない操作)や、安全でないナビゲーションのために別のブラウザを使用することなど、セキュリティ上の欠陥を発見したことを彼に警告することもできます。

あなたは追加のユーザー情報(ユーザーエージェント、場所によってIP)を保存する場合は、偽のユーザーのさえ最初の入り口を避けるために、それらにも、クッキーの有効性を確認することができます。

1

私は、ASP.NETアプリケーションのユーザーでログインして追跡するためのforms authenticationを使用して、あなたをお勧めします。

関連する問題