0


0

ページのキャッシュバージョンによるセキュリティリスクをどのように削除しますか

リンクを参照してください

https://stackoverflow.com/questions/4176108/why-does-the-value-of-session-variable-remain-even-after-all-the-code-of-destruct [セッション変数の値が残る理由すべての破壊のコードの後でも?]

上記の問題は、ブラウザがページのキャッシュされたバージョンを表示しているため、私が作成したログイン機能が失敗することです。これは、特定の制限時間内にすべての機能を実行できる理由もわかりませんが、その後、それは実現しますそのキャッシュ!!

so,

ウェブサイトのキャッシュバージョンを削除する方法、

OR

教え方キャッシュで私のコピーを作らないでください!!!

C#を使用して

4 Answer


2


できることのほとんどは、ブラウザにキャッシュさせたくないページにexpiresメタタグを追加することです


または、Pageタグの追加後にASP.NETで代わりに

<%@ OutputCache Duration="0" Location="none" NoStore="true" %>

C#のコードビハインド

Response.Cache.SetNoStore();
Response.Cache.SetExpires(DateTime.Now);
Response.Cache.SetCacheability(HttpCacheability.NoCache);

詳細については、http://msdn.microsoft.com/en-us/library/06bh14hk(v = VS.100).aspxを参照してください。

さらに詳しい記事はこちらhttp://www.mnot.net/cache_docs/

編集:Alxandrからのコメントの後に更新


1


クライアント側のページのキャッシュバージョンについて心配しているようです。 これが当てはまる場合、その懸念に対処する主な方法が2つあります。 キャッシュなし属性をHTTPヘッダーまたはページのMETAタグに追加できます。 HTTPヘッダーアプローチは、http://www.mnot.net/cache_docs/#META [推奨アプローチ]です。

METAタグアプローチ


HTTPヘッダーアプローチ

Cache-Control: max-age=3600, must-revalidate

以下に引用するリンクは、HTTPヘッダーとMETAヘッダーに関する豊富な情報を提供します。 オプションを理解し、さまざまな言語とHTTPサーバーの実装例を確認するために、このドキュメントを読むことをお勧めします。


0


ドーナツキャッシングとサーバー側のみのキャッシングは、この問題を解決します。 穴(ドーナツセンター)で、ユーザーのログインを検証します。 無効な場合は、ログインページへのリダイレクト301を実行します。


-1


ブラウザは、キャッシュにそのコピーを作成します。 それについて叫ぶことは、それを消滅させません。 他の場所で愚かなことをしているのでなければ、これはセキュリティ上のリスクであってはなりません。 キャッシュがコピーを作成するのを妨げるセキュリティ問題があったとしても、問題は解決しません。

だから:あなたは、ブラウザがキャッシュすることを防ぐことができますが、それはあなたがやりたいことではありません。 ブラウザは、Webページのコピーをハードドライブに保存しますが、表示しようとしません。 それはセキュリティ上の問題ではありません。