LoginSignup
1
2

More than 5 years have passed since last update.

Cache-control

Last updated at Posted at 2016-04-08

cache-controlの設定でブラウザにどのように情報がキャッシュされるのかが曖昧だったのでまとめます。

Webアプリケーションにおいて、ブラウザ上に重要な情報をキャッシュされることは情報漏洩の問題につながります。
例えば、ログイン後のパスワード変更画面で新しいパスワードを入力し確認画面へ遷移するようなリクエストを送信すると、Webサーバからのレスポンスがきます。確認画面に新しいパスワードが表示されている場合、Webサーバからのレスポンスにはもちろん確認画面に表示されているパスワードが記載されているわけです。
レスポンスヘッダに正しくキャッシュを制限する記述が無ければブラウザのキャッシュに新しいパスワードの情報が残ってしまいます。キャッシュは誰でも確認できるためだいぶ危ないですね。

cache-control

「cache-control」を正しく設定するとレスポンスに含まれる情報をブラウザにキャッシュを禁ずることもできます。
基本的に以下の設定をしていればセキュリティ的には問題ありません。


cache-control:no-store
Pragma:no-cache

この設定ができているサイトはかなり少なめですね。サーバの設定をするだけなので簡単なのに!

cache-control:no-store

この設定は「キャッシュするな!」ってことで、レスポンス情報は一切ブラウザにキャッシュされません。

今回は「Pragma:no-cache」は深く触れませんが、簡単に言うと「cache-control」の補助的役割。

このほかにも「cache-control」には以下の設定があります。


1.Cache-Control: private
2.Cache-Control: no-cache
3.Cache-Control: must-revalidate
4.Cache-Control: max-age

実際に自分で実験する必要はありそうです。
実験した際に結果を追記します。

つづく

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2