Webサーバ Webクライアントの通信における、クッキー方式とセッションクッキー方式の違いを説明します。Webアプリケーションは原則はセッションレス(通信するたびに接続を切断)なため、通信にはセッションが必要です。このセッションを記憶するための方式である、クッキーとセッションクッキーの違いに関して説明します。
(注意)セッション管理としてその他「hiddenフィールドにセッションIDを入れる」「URLのパラメータにセッションIDを入れる」などがありますが、セキュリティ上大きな問題があるため、このページでは割愛します。
概要 | データの保存場所 | クッキーの保存場所 | 欠点 | |
クッキー方式 | ・データ(ユーザID等)をクライアント側に保管。このデータを送受信する。 | 'クライアント側 | クライアント側ファイル | ・cookie個人情報そのものを送受信するアプリケーションもあり。その場合は盗聴などの被害の可能性があり。 ・cookieファイルを盗まれるとセッションがハイジャックされる。 ・設定によってはブラウザを終了しても情報が残存する場合あり。 ・「クロスサイト リクエスト フォージェリ」の攻撃の原因となりうる。 |
セッションクッキー方式 | ・クッキー方式の弱点を補う。 ・データはサーバ側に保管。クライアント側とはセッションIDを送信。 ・ブラウザ終了時あるいはログアウト時にセッションIDが消滅。(有効期限は0に設定されている) |
サーバ側(*1) | クライアント側メモリ | ・セッションIDを盗難されるとセッションがハイジャックされる。よって別途HTTPS通信など必須。 ・セッションIDの生成規則を予測されるとなりすましが可能。(例:年月日時刻など単純なIDは危険。十分大きな乱数を生成、ハッシュを使用などが重要) |
(*1)クライアント側はセッションIDのみ保管
スポンサード リンク