第1回 まずは「クッキー」を理解すべし | 日経 xTECH(クロステック)

安西さんの記事、Webアプリの色々な意味でキーになるクッキーの説明

携帯電話向けアプリケーションを除き,Webアプリケーションにおけるセッション管理ではクッキーを使うことが多い。そこでまず,クッキーの仕組みを解説しよう。
Webアプリケーションは本来,アプリケーションの「状態」を持たない。プロトコルとしてHTTPを使うためだ。あるユーザーから送られてきた前回のリクエストと,今回のリクエストを関連付けることはできない。ただ,これではユーザー認証を必要とするようなアプリケーションを実現できない。そこで Webアプリケーションの黎明期には,ユーザーはURLに識別情報を含める方法でセッション管理を実現していた。

クッキー自体論では、secure属性とexpires属性で話は出来るでしょうが、それ以外クッキーの中身も十分注意が必要ですね

どのようにクッキーを保護したらいいか。対策は,クッキーの仕様で定義されている属性のパラメータを注意深く設定することである。クッキーの属性としては,secure属性,expires属性などが挙げられる。これらは正しく設定されていないことが多い。
[secure属性]:HTTPSの通信時のみクッキーを送信する
[expires属性]:クッキーの有効期限を指定する

  • secure属性が指定されていないと,暗号化されていない通信経路上にクッキーが送信されてしまい,盗聴される危険がある。最近の開発環境では,アプリケーション・サーバーや,フレームワークがsecure属性の設定を自動的に設定することが多いため気付きにくいかもしれない。マニュアルを確認し,正しく設定する必要がある。
  • expires属性は,被害が発生してしまう可能性と関連する。この指定がある場合,指定された日時までクッキーが送信される。つまり,クッキーは指定された日時までファイル上に保存され,ブラウザ再起動後もその値が読み込まれ使用される。指定がない場合,有効期限はブラウザが終了するまでとなる。

今後に期待ですね、まずはクッキーのNetscape論ってことで。

クッキーが送信される条件は,普段はあまり気にとめられない。ただ,Webアプリケーションのセキュリティ上の問題の多くは,クッキーの仕組みゆえに発生する。ぜい弱性を理解するために必要な知識である。次回からは,クッキーの仕組みを使ったセッション管理に潜むぜい弱性と,それを悪用した攻撃手法について解説する。

screenshot