1
0

More than 1 year has passed since last update.

Cookieについて

Posted at

業務の中で脆弱性の対応をすることとなり、Cookie系の修正が多かったためCookieについてまとめた記事を投稿いたします。

【Cookieのやりとり】

webサーバーに接続してきたブラウザに対して、ブラウザに保存してほしい内容をCookieとして送ります。

ブラウザに保存しておいたCookieは次にwebサーバーに接続する際に送信することで、webサーバーが
送ってきたブラウザを識別することができます。

【メッセージヘッダーの利用】

Cookieの送信には「メッセージヘッダー」が利用される

WebサーバーはHTTPレスポンスに「Set-Cookie」ヘッダーを含めることでCookieを送信できる
WebブラウザはHTTPリクエストに「Cookie」ヘッダーを含めることで送信できる

「Set-Cookie」ヘッダーにはオプションで以下のようなことが設定できる
・Cookieの有効期限
・HTTPSのみを利用してCookieを送信する設定

【セッションCookie】

有効期限が未設定のCookieは、Webブラウザが閉じられると同時に削除される
このようなCookieを「セッションCookie」と呼ぶ。

一方で有効期限が設定されたCookieは、Webブラウザを閉じても削除されず、
有効期限がくるまでWebブラウザ上に残ります。

【Cookieで利用されるヘッダーフィールド】

名前 内容 種別
Set-Cookie 状態を保持・管理するための情報(Cookie) レスポンスヘッダーフィールド
Cookie Webサーバーから受け取ったCookieの値 リクエストヘッダーフィールド

【Set-Cookieヘッダーフィールドに記述する属性】

属性 内容
name=value Cookieに付ける名前とその値(必須)
expire=date Cookieの有効期限、この属性がない場合はWebブラウザを閉じるとCookieは削除される
max-age=seconds Cookieの残存時間を秒数で指定
secure HTTPSで通信している場合にのみCookieを送信
httponly JavascriptからのCookieへの参照制限
domain=DOMAIN_NAME Cookieが利用されるドメイン名
path=PATH Cookieが利用されるサーバー上のパス

【設定したSet-Cookieを確認する方法】

(1)Chromeにて検証ツールを開く
(2)その後上部のメニューから「アプリケーション」を選択
(3)左のサイドメニューから「Cookie」のメニューを開き、URLをクリックする
(4)それぞれのSet-Cookieに設定されている「secure」「httponly」「same_site」等が確認できる

1
0
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
0