2009-08-04 6 views
2

私はASP.NETアプリケーションでフォーム認証を使用しています。すでにログインした後で認証Cookieのコンテンツをコピーし、その後、別のブラウザからアプリケーションが自動的に2番目のブラウザからログインします。フォーム認証Cookieをブラウザ間で使用しないようにする

これを防ぐ方法があるかどうかを知りたいです(私は知らない...認証チケットをブラウザのインス​​タンスにどういうものか好きなように)。誰かがログインやパスワードを必要とせずに別のコンピュータで同じアカウントにアクセスすることができます。

答えて

1

あなたができることはあまりありません。 Jeff Prosiseは興味深い記事をここに持っています。彼はtries creating an HttpModuleです。あなたは、これはその効果的ではありません見ることができます

しかし:

...のUser-Agentヘッダは、防衛の最後の行 です。 User-Agent ヘッダーは誰かが簡単に偽装します。 は、User-Agentヘッダーが がセッションIDの検証に使用されていることを認識しています。

個人的に私はそれ以上の睡眠を失うことはありません。

+0

素敵な記事、私はそれを行こう。それでも問題が完全に解決されない場合でも、「悪い人」のために少し難しくすることは価値があります;-) –

0

ユーザエージェントを取得してCookieに埋め込みますか?明らかに、これはあなたのクッキーが暗号化されている場合にのみ機能します。

例えば、

string plainFormCookie=GetUsername()+etc()+Request.UserAgent; 
// encrypt cookie afterwards 
+0

悪意のあるユーザーが同じユーザーエージェントでブラウザを使用しないようにするにはどうすればよいですか? –

+0

クッキーの内容は暗号化されたFormsAuthenticationTicketオブジェクトなので、私はコンテンツ自体について何もコントロールできません... –

0

いいえ、ブラウザは、単一のブラウザインスタンスを特定するために使用できる一意の識別子を送信しません。 UserAgent文字列を保存し、ユーザーがID盗難のリスクを減らすためにページをリクエストするたびに、そのIDが盗聴されないことを確認できます。

本当に安全な接続を確立するには、SSLを使用する必要があります。

+0

私はSSLを使用しても、ブラウザはクッキーの内容を見ることができ、コピーすることもできます...できない? –

+0

SSLには独自のセッションIDがあり、ブラウザが接続を開始したときに発行され、簡単にコピーできるようにクッキーに保存されません。 – Guffa

関連する問題