15

ユーザーがログアウトした後、[戻る] ボタンを押すと、ログアウトする前に表示していた最後のページに戻ることができます。

私が取り組んでいるアプリは、公共のコンピューター (図書館やコンピューター ラボなど) で使用されることが多く、ユーザーが以前のユーザー セッションから何かを見ることができないようにしたいと考えています。

私はRails 3とDeviseを使用していますが、この問題はフレームワークまたはログインメカニズムで発生するようです。

ヘッダー/メタタグを使用してブラウザのキャッシュを無効にする解決策はありますか? この問題に対処する宝石やチュートリアルを知っている人はいますか?

アドバイスをお待ちしております。

4

3 に答える 3

7

アプリケーションコントローラーで以下のコードを使用してください..私にとってはうまくいきます。これがあなたを助けることを願っています。ありがとうございました!!

コード

before_filter :set_cache_buster

def set_cache_buster
   response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
   response.headers["Pragma"] = "no-cache"
   response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
end
于 2014-06-05T11:10:20.147 に答える
5

Rails を使用しているため、publicフォルダーに配置されたすべてのものを積極的なキャッシュで簡単にセットアップし、パブリックの「about」ページなど、安全にキャッシュできるものを厳選できます。

Cache-Control: no-cache機密情報を含む HTML ページ、XML、JSON (基本的には、適切なログインでのみアクセスできるもの) をブラウザーがキャッシュしないように設定し、css や画像などの静的アセットに対してより積極的なキャッシュを設定する必要があります。

  • アグレッシブ キャッシュの適切な候補は、アプリケーションおよびパブリック ページ内で使用される css および画像です。
  • キャッシュなしの適切な候補は、ログイン後にアクセスできるものです (つまり、この所有者のみがアクセスできるようにする必要がある画像を保存している場合はキャッシュしないでください。認証されたユーザーに対する Ajax 要求がある場合は、その XML はキャッシュしないでください)。キャッシュされます)。
于 2010-12-06T01:06:02.647 に答える
3

はい、ページをキャッシュしないようにブラウザに指示するには、httpヘッダーを使用する必要があります。OWASPのこのページ()には、これを行う方法に関する情報が含まれています。

上記の記事のように、次のヘッダーを設定して、ページをキャッシュしないようにブラウザに指示できます。

HTTP/1.1:
Cache-Control: no-cache

また

HTTP/1.0:
Pragma: no-cache
Expires: <past date or illegal value (e.g., 0)>

お役に立てれば。

于 2010-11-09T12:32:15.560 に答える