情報処理安全確保支援士(情報セキュリティスペシャリスト)試験に合格するためのサイトです。
過去問を多数引用しながら、基礎知識をしっかり学んでもらうように作ってあります。
また、情報処理安全確保支援士(情報セキュリティスペシャリスト)を楽しく学べるように工夫したいと思います。
カテゴリ:

9.サーバセキュリティ > 9.8 Cookie

セッション管理には3つがあると述べたが、一番多いのはCookieである。
実際に試してみよう。session
PHPでプログラミングをする場合、以下を書くだけである。

  session_start();

プログラムとしては、以下のようになる。
login.php  ※ポイントのみの最低限に絞っている
<?php
  session_start();
?>

ログイン画面<br>
<FORM ACTION="result.php" METHOD="POST">
ID:<INPUT TYPE="text" NAME="id" VALUE=""><br>
Password:<INPUT TYPE="password" NAME="password" VALUE=""><br>
<INPUT TYPE="submit" VALUE="Login">
</FORM>
sef4 
これだけでCookieが設定されるとは便利ですね。
では、IEの「ツール」「インターネットオプション」「全般」「設定」「ファイルの表示」の中で、Cookieを探してみます。
あれ?無いですよ?
ファイルに保存されるのは、Cookieに有効期限を付けた場合のみだ。通常は、ブラウザを閉じるとCookieは削除されるので、わざわざファイルに保存する必要はない。
 
IEの開発ツールで見てみよう。F12を押して、三角のスタートボタンを押してキャプチャをする。Cookieタブを見ると、以下にようにPHPSESSIDとして確認できる。
cookie
※http:127.0.0.1になっているのは、Webサーバ上から直接アクセスしたため。

では、パケットキャプチャを詳しく見てみよう。
PC(192.168.1.103)からWebサーバ192.168.1.102にアクセスするとする。
http://192.168.1.102/login.php
WebサーバにはPHPのプログラムにて session_start() が記載されているので、ブラウザに対してSet-Cookieにてセッション情報を渡す。(上の図の②)
このとき、②のフレームが以下である。http









Webサーバからブラウザに対し、Set-CookieにてセッションIDが渡されているのが分かる。
その後、ブラウザからWebサーバへの通信(上の図の③)へは、以下のようにCookieのセッションIDを伝えながら通信をする。これにより、セッションを維持しながらの通信が可能になる。
session2
情報セキュリティスペシャリスト試験を目指す女性SE

【ポイント!】
WebサーバはHTTPヘッダのSet-Cookie(HTTPレスポンス)、クライアントはCookie(HTTPリクエスト)にCookie情報を入れて通信

参考1
過去問(H23SC春午後2問2)に、「利用者がパスワードを入力してログインすると, Set-CookieヘッダでセッションIDをブラウザに対して発行するようになっている。それ以降はセッション管理にこのセッションIDを利用するとともに, SSLによる通信の暗号化が図られている」とある。

参考2
Cookieの場所であるが、最近のIEでは「ツール」「インターネットオプション」「全般」「設定」「ファイルの表示」の中にある。他のテンポラリーファイルも混ざっているので見づらいが、よく探せばあるので、見ていただきたい。
cookie

Netscape社が開発。
過去問ではcookieに関して、「Webサーバに対するアクセスがどのPCからのものであるかを識別するために,Webサーバの指示によってブラウザにユーザ情報などを保存する仕組み(H19FE午前問36)」と述べられている。
Cookieには有効期限があり、有効期限がくるとブラウザから削除される。有効期限がないものは、無期限に使えるのではなく逆にブラウザを閉じると削除される。
Cookieに書き込む方法は、WebページにHTMLにて、Metaタグに記載する方法と、JavaScriptにてdocument.cookie=
で書く方法がある。

H22SC秋午後Ⅰ問3設問3(2)には、Set-Cookieヘッダの例が搭載されている
Set-Cookie:session_id=uid20101017143045;secure;path=/874045/
このsecureの意味は何か。

クッキーに関しては、たまに出題されます。
内容はそれほど難しくないため、理解しておくとよいでしょう。secureは、SSLの暗号化通信の場合にのみ、クッキー(Cookie)が送信されます。暗号化されていない場合は、盗み見られる可能性があるから、送信されない。

それぞれの意味は以下である。
・NAME:Cookieの名前
・expires:Cookieの有効期限。値を指定しない場合は、ブラウザを閉じた時点で有効期限が切れる。
・domain:Cookieを送るドメイン名。クライアント端末が次回Webサーバに接続した際に、ここで指定したドメインと一致した場合にCookieを送る。(例)seeeko.com
・path:ドメイン名に加えて、URLのパスを指定したい場合に指定する。(例)/cgi
・secure:暗号化された通信(HTTPS)の場合にのみCookieを送る。domain、pathが一致しても、HTTP通信の場合はCookieは送らない。

過去問(H27SC秋午前2)をもう一問見てみましょう。
問13 WebサーバがHTTPS通信の応答でCookieにSecure属性を設定したときのブラウザの処理はどれか。
ア ブラウザは,Cookieの“Secure="に続いて指定された時間を参照し,指定された時間を過ぎている場合にそのCookieを削除する。
イ ブラウザは,Cookieの“Secure="に続いて指定されたホスト名を参照し,指定されたホストにそのCookieを送信する。
ウ ブラウザは,Cookieの“Secure"を参照し,HTTPS 通信時だけそのCookieを送信する。
エ ブラウザは,Cookieの“Secure"を参照し,ブラウザの終了時にそのCookieを削除する。
正解はウです。

このページのトップヘ