0

ASP.net httpcontextキャッシュオブジェクトは、特定のシナリオでデータベースを参照する回数を減らすことで、Webアプリケーションのパフォーマンスを向上させるのに役立つことがわかりました。httpcontext cacheオブジェクトへのログインが成功したときに作成されるユーザーオブジェクトを配置し、各ページ/リクエストを処理する際の後続の参照DBの数を減らすためにそこに保持することにしました。そのオブジェクトにはパスワードやソルト値を保持しませんが、ユーザーオブジェクトにはアカウントの有効期限などを保持します。以下のリンクを確認しました

.NETのキャッシュデータのセキュリティ

ソリューションが私のシナリオに適用可能かどうかを確認しましたが、そこでの会話をこのシナリオに適用できると推測することはできませんでした(この種の比較的機密性の高い情報をキャッシュオブジェクトに保持します)。

このキャッシュオブジェクトの利用が、アカウントの有効期限やアカウントのアクティブ性フラグなどを保持するのに十分安全かどうかを教えてください。そうでない場合は、後続のDB呼び出しなしでユーザーオブジェクトを手元に置くための提案は何ですか。

PS:各アプリケーションプールのリサイクルで問題が発生するため、そのオブジェクトをセッションオブジェクトに保持したくありません。

4

1 に答える 1

1

リンクされた投稿が示唆しているように、それはあなたのアプリケーション、サーバーインフラストラクチャ、そしてあなたがあなたのコードを書いた方法と同じくらい安全です。キャッシュはアプリケーション全体で情報を保持します。つまり、コードの記述方法にセキュリティの脆弱性がある場合、ユーザー間でユーザー固有の情報が公開されるリスクが高くなります。

アプリプールのリサイクルが原因でSessionに問題が発生している場合は、キャッシュを使用しても問題は解決しません。アプリプールがセッションと同じ方法でリサイクルされると、キャッシュはクリアされます(セッションがに構成されている場合InProc)。実際、Sessionをに設定した場合InProc、値は実際にはキャッシュに保存されます。

于 2012-09-10T12:52:06.600 に答える