2012-03-23 2 views
3

私はASP.netでwebdevを使い慣れています。安全な「私を思い出してください」Webアプリケーションで

私の問題は、安全な「Remember me」機能を確保する方法です。 現時点では、私は将来、ユーザーを認証するためにオブジェクトをクッキーにシリアル化しています。

しかし、私の考えは、誰かが私のクッキーをコピーすると、彼はハッキングされた人のアカウントでログインできるようになりました。異なるセッション間で誰かのログインを覚えておくのがより安全なバージョンですか?

敬具

+0

http://stackoverflow.com/questions/3206622/is-putting-data-in-cookies-secureを見る、アイデアは、DBにいくつかの既知の値(回転値)を格納し、内復号化された値と比較することですクッキー – sll

答えて

0

あなたは、クライアントのIPアドレスのようなクッキーにいくつかの追加情報を格納することができます。

+0

これは私のクッキーをコピー&ペーストする問題を解決しません...私も無制限の思い出しを提供したいので – kyjan

+1

-1 OPはセキュリティに関して特に尋ねましたが、NATを備えたルータの後ろに2台のマシンがある場合どちらも同じIPアドレスを持つように見えます。したがって、同じルータの背後にいる誰もがCookieを盗み、セキュリティを破る可能性があります。 –

+1

それは同じコンピュータ上の他のユーザーを扱うことはできませんが、別の人が同じIPを持っているとは限りません...今はIP以外にも保存できるものがありますが、正しい方向に動く。 – Servy

3

「remember me」クッキーには通常、長いセッションキーが保存されます。 Cookieが最初に作成されたコンピュータ環境に関する追加情報を保存し、Cookieを受け入れる前にこの情報をチェックすることで、盗まれたCookieを使用するのをより困難にすることができます。これは「デバイスフィンガープリント」と呼ばれます。これは非常に正確ですが、それほど簡単ではなく、100%安全ではありません。

IP-数は、デバイスの指紋の一部にすることができますが、それはかなりかなりCookieの値が減少するように、モバイルデバイス上のIP-数字は非常に頻繁に変更されます。 「User-Agent」、「Accept」、「Accept-Language」などのようなhttpヘッダーフィールドをチェックすることができます。これらのフィールドは通常、2つの異なるブラウザで異なります。 javascriptを使用してosのバージョン、javaのバージョンなどを調べることができます。

サーバー上にデバイスの指紋をセッションキーと共に保存すると、remember-me-cookieが少し強くなります。しかし、それはまだあまり安全ではありません。クッキーを盗む攻撃者は、おそらくこの情報をすべて収集することもできます。

PS:また彼は、クッキーが自分のコンピュータが盗まれた、すなわち場合は、失われたことを知っている場合、ユーザーが非アクティブに覚え-私をクッキーにできるはずであることを覚えておいてください。

関連する問題