HTTP通信 - Cookieについて

HTTP通信でのCookieの意味について調べたのでそのメモです。今回のCookieの情報はWikipediaの説明が丁寧でわかりやすかったです。CGMコンテンツもあそこまで成熟すると教科書レベルになるんだと感心しました!


🤔 Cookieの概要

(1) HTTPにおけるWebサイト、ブラウザ間で状態を管理するプロトコル
(2) Webブラウザに保持された情報のこと

Webサイトの提供者が、ブラウザを通じて訪問者のコンピュータ側にデータの書き込みを行うしくみ。
利用者の識別やセッションの管理のために用いる。

ちなみにセッションとは、一連のインタラクティブな操作のこと。一定時間のアクセス(30分)や、ログインからログアウトまでの一連の処理を指す。

🚜 Cookie管理の流れ

(1) WebサーバがWebブラウザにその状態を区別する識別子をHTTPヘッダに含める形で渡す
(2) ブラウザは次にサーバにアクセスする際に、与えられた識別子をHTTPヘッダに含めて送信する
(3) サーバはその識別子によって通信の内容をカスタマイズしてブラウザに送信する
(4) (2) - (3)を繰り返す。必要に応じて新しい識別子を追加する

😀 Cookieにおける注意点

(1) クライアント側のスクリプトによってクッキーを操作することができる
(2) ブラウザにクッキーの送受信停止や、クッキー内容の確認、クッキーの消去などの機能がある

🐡 Cookieに関連したセキュリティ、プライバシー問題

セッションハイジャック

Cookieでセッション管理を行う場合、第三者がセッションIDを獲得した場合、「なりすまし」を行うことができる。この対策としては、HTTPS(SSL)通信を行い、CookieにSecure属性をつけることである。

🚌 参考リンク

HTTP cookie - Wikipedia

セッション管理の不備と対策 | Webセキュリティの小部屋

📚 おすすめの書籍

💩 欲しいものリスト公開しました