2月2日(月)4コマ目
今日、やったこと
[Webアプリケーションのセキュリティ]Cookie
今日のホワイトボード
前回までに作成したxss検証用サイトアプリケーションを使って、Webアプリケーション構築時に知っておかなければならない、セキュリティ知識を紹介。
座学メインで進めます。眠い、つまらん、ダルいと思いますが、最後に紙のテストをしますので、しっかり理解をしてください。
Cookieとは
クライアント(Webブラウザ)がデータを保存する仕組み。
サーバーから Set-cookie で送信されたデータを保存する。
クライアントはサーバーにリクエストする際、Cookie保存データを送信する。
![]() |
| 図 クライアントがCookieを保存する、サーバーに送信する |
SessionオブジェクトとCookie
〇Sessionオブジェクト
Webアプリケーションにおいて、リクエストを跨いでデータを共有できるのが、Sessionオブジェクト。
Sessionオブジェクトはクライアント毎に生成し、ユニークなセッションIDで識別する。
〇セッションID
クライアントとサーバー間で同じセッションIDを保持し、クラインとはサーバーにリクエスト送信する際に、セッションIDを送信することで、サーバー側はクライアントのセッションオブジェクトを識別している。
![]() |
| 図 セッションオブジェクトとセッションID |
〇クライアントのセッションID保存先
クライアントのセッションID保存先はCookie。
サーバーがセッション開始後、クライアントにset-cookieでセッションIDを送信。
![]() |
| 図 セッションIDをset-cookieで送信 |
CookieのセッションIDを書き換えて、他人のセッションを乗っ取ることもできる。(セッションハイジャック)
クライアントはサーバーにCookieを送信する(Domain属性)
クライアントはサーバーにリクエスト送信する際、Cookieを送信する。
が、なんでもかんでも送るわけではない。
CookieのDomain属性がリクエスト先のサーバー名と一致するなら送信。
![]() |
| 図 CookieのDomain属性とリクエスト先サーバー名が一致するなら送信 |
Domain属性とリクエスト先サーバー名が一致する、しないは後方一致で判断。
”後方一致する”を簡単に言えば、リクエスト先サーバー名が
- Domain属性と一緒
- Domain属性のサブドメイン





