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は簡単に書き換えできる。
CookieのセッションIDを書き換えて、他人のセッションを乗っ取ることもできる。(セッションハイジャック)

クライアントはサーバーにCookieを送信する(Domain属性)

クライアントはサーバーにリクエスト送信する際、Cookieを送信する。
が、なんでもかんでも送るわけではない。
CookieのDomain属性がリクエスト先のサーバー名と一致するなら送信。
図 CookieのDomain属性とリクエスト先サーバー名が一致するなら送信

Domain属性とリクエスト先サーバー名が一致する、しないは後方一致で判断。

”後方一致する”を簡単に言えば、リクエスト先サーバー名が
  • Domain属性と一緒
  • Domain属性のサブドメイン
のとき。
図 Domain属性はリクエスト先サーバー名と後方一致

クライアントはサーバーにCookieを送信する(Path属性)

クライアントはサーバーにCookieを送信する際、Domein属性がリクエスト先サーバー名と一致する(後方一致)に加えて、Path属性がリクエスト先のパスと一致する必要がある。
Path属性とリクエスト先のパスが一致するか、しないかは前方一致
図 Path属性はリクエスト先のパスと前方一致

”Path属性と前方一致する”を簡単に言えば、Path属性のディレクトリ以下ならOK。

次回は

つづき。
まだまだ座学は続きます。眠いし、退屈だし、つまらんけど、がんばってください。








 

このブログの人気の投稿

1月13日(火)3コマ目

2月10日(火)3コマ目