PR

Cookieのセキュリティ設定完全ガイド|HttpOnly・Secure・SameSiteの使い方

Cookie-secure セキュリティ
記事内に広告が含まれています。
スポンサーリンク

 この記事では,情報処理安全確保支援士試験で頻出テーマであるCookieのセキュア設定についてまとめてみました.試験勉強教材の一助としてご活用いただければ幸いです.

 HTTPヘッダのセキュア設定については,前回の記事で紹介しておりますので,併せてご覧いただけると幸いです.

スポンサーリンク
スポンサーリンク

Cookieとは

 まずは,Cookieについて簡単におさらいしましょう.

 Cookieは,ブラウザ(クライアント側)に保存されるテキスト情報の一種であり,セッション管理(ログイン状態の維持),ネットショッピングにおける買い物カゴ機能,広告配信など 様々な場面で利用されている非常に便利な仕組みです.
一方,Cookieを用いたセッション管理にはクロスサイトスクリプティング(XSS)セッションハイジャックといったリスクが伴います.このため,開発時には関連する属性を適切に設定するなど,セキュリティ対策が不可欠です.

スポンサーリンク

Cookieのセキュア設定

 それでは,実際に開発者目線でCookieのセキュア設定を見ていきましょう.以下に代表的なCookieのセキュリティ設定を4つ示します.

Expires

 Cookieの失効日時(有効期限)を設定する項目です.
有効期限を短く設定した場合,セキュリティは向上しますが,頻繁にログインを求められるなど,ユーザの利便性を損なう可能性があります.反対に,有効期限を長く設定した場合,ユーザの利便性は向上しますが,セキュリティのリスクも高くなってしまいます.
このように,セキュリティと利便性のトレードオフの関係を意識しながら,適切な長さで有効期限を設定する必要があります.

HttpOnly

 HttpOnly属性を付加することで,Cookieの値をJavaScript経由で直接的に読み出すことができなくなります.これにより,「XSS(クロスサイトスクリプティング)攻撃を仕掛け,Cookieで保存されているセッションIDを窃取し,第三者になりすまして不正ログインする」という攻撃を防ぐことができます.
True or FalseのBoolean型で指定します.

Secure(頻出)

 Secure属性を付加することで,Cookieは「HTTPS通信時のみ送出」されるようになります.通信が暗号化されていないHTTP通信でCookieを送出してしまった場合,先ほどのように第三者にCookieの値が渡ってしまい,不正にログインされてしまう恐れがあります.
よほど特別な事情が無い限りは,Secure属性を有効にしておくことが推奨されます.
HttpOnly属性と同様に,True or FalseのBoolean型で指定します.

 実際に出題された過去問を見てみましょう.

cookieにSecure属性を設定しなかったときと比較した,設定したときの動作として,適切なものはどれか。

ア cookieに設定された有効期間を過ぎると,cookieが無効化される。
イ JavaScriptによるcookieの読出しが禁止される。
ウ URL内のスキームがhttpsのときだけ,Webブラウザからcookieが送出される。
エ WebブラウザがアクセスするURL内のパスとcookieに設定されたパスのプレフィックスが一致するときだけ,Webブラウザからcookieが送出される。

令和3年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問10

ウが正解です.
ちなみに,アはExpires属性の説明,イはHttpOnly属性の説明,エはPath属性の説明でした.

 

SameSite

 SameSite属性は,異なるオリジン(サイト)にまたがるCookieの設定です.SameSite属性を適切に設定することで,CSRF(クロスサイトリクエストフォージェリ)攻撃に対し,一定の効果があります.SameSite属性の設定について,情報処理安全確保支援士試験の過去問に良問がありましたので,実際の過去問(簡潔のため,改題しています)と共にご紹介したいと思います.

以下の表中の空欄 a ~ d に適する記号を 〇 または × のいずれかで答えよ.ただし,〇はサイトXのCookieが送られることを示し,×はサイトXのCookieが送られないことを示すものとする.

SameSite属性設定表

出典:令和6年度 春期 情報処理安全確保支援士試験 午後 問3(改)

【正解】

空欄a:×
空欄b:×
空欄c:〇
空欄d:×

スポンサーリンク

実際にCookieを見てみる

 ブラウザのデベロッパー(開発者)ツールを使って,格納されているCookieの値と属性設定を見ることができます.せっかくなので,Cookieの値を確認する方法もご紹介したいと思います.

1)F12キー(または右クリック→開発者ツール をクリック)を押し,デベロッパーツールを立ち上げます.

2)「アプリケーション」タブをクリックします.
  タブが表示されていない場合は,タブ横にあるプラスボタンを押すと出現します.

3)デベロッパーツールの左側にあるサイドメニューからストレージ → Cookie → URLをクリックします.

4)格納されているCookieの一覧が表示されます.

スポンサーリンク
スポンサーリンク
セキュリティ
シェアする
しばをフォローする
タイトルとURLをコピーしました