Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
2
Help us understand the problem. What is going on with this article?
@madamadaikeru22

Cache-control

More than 3 years have passed since last update.

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

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

つづく

2
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
2
Help us understand the problem. What is going on with this article?