SC Workbook
科目 A-2 · セキュリティ

Origin 反射と資格情報

ログイン中の利用者のブラウザが行ったクロスオリジンの fetch(credentials を include に設定)に対し,ある API が次のように応答した。API のセッション Cookie には SameSite=None と Secure が付与されている。この CORS 設定のリスクに関する記述として,適切なものはどれか。

リクエスト: Origin: https://attacker.example.net
応答:
Access-Control-Allow-Origin: https://attacker.example.net
Access-Control-Allow-Credentials: true
  1. アクロスオリジンの fetch ではブラウザが Cookie を一切送らないので,資格情報付きの応答が攻撃者に読まれることはない。
  2. イCORS は要求元のオリジンを制限する仕組みなので,この応答ヘッダによって CSRF 攻撃も同時に防止される。
  3. ウサーバが要求の Origin ヘッダの値をそのまま反射し,かつ資格情報の共有を許可しているため,攻撃者のサイトを開いた利用者の認証済みの応答を攻撃者のスクリプトが読み取れる。
  4. エAccess-Control-Allow-Origin に具体的なオリジンが入っている限り,たとえ攻撃者のオリジンでも,プリフライトで必ず拒否されるので実際の要求は送られない。
正解と解説を見る

正解 ウ

この問題の基礎知識

  • 同一オリジンポリシーは,あるオリジン(スキーム・ホスト・ポートの組)のページのスクリプトが,異なるオリジンの応答を読み取ることを制限するブラウザの仕組みである。
  • CORS は,サーバが Access-Control-Allow-Origin などの応答ヘッダで読取りを許可するオリジンを示し,ブラウザがそれに従って応答をスクリプトに渡すかを決める仕組みである。プリフライトが不要な単純要求はそのまま送信されるので,要求の送信を防ぐ仕組みではない。
  • Cookie などの資格情報付きの要求の応答を読ませるには,Access-Control-Allow-Credentials: true と,ワイルドカード(*)ではない具体的なオリジンの指定が必要になる。
  • Cookie の SameSite 属性が None(Secure 必須)の場合は,仕様上クロスサイトの要求にも Cookie が送られる。CSRF は要求を送らせる攻撃であり,応答の読取りを制御する CORS とは対策が別である。
アクロスオリジンの fetch ではブラウザが Cookie を一切送らないので,資格情報付きの応答が攻撃者に読まれることはない。

credentials を include にしたクロスオリジン要求では Cookie が送信される。同一オリジンポリシーで Cookie が送られないという思い込みで,この設定の危険性を見落としている。

イCORS は要求元のオリジンを制限する仕組みなので,この応答ヘッダによって CSRF 攻撃も同時に防止される。

CORS は応答を読み取れるオリジンを制御するもので,要求の送信自体は止めない。CSRF の防止は別途必要であり,CORS と CSRF 対策の役割を混同している。

ウサーバが要求の Origin ヘッダの値をそのまま反射し,かつ資格情報の共有を許可しているため,攻撃者のサイトを開いた利用者の認証済みの応答を攻撃者のスクリプトが読み取れる。正解

Origin を無検査で反射し Access-Control-Allow-Credentials: true を返すと,任意のオリジンが資格情報付きで応答を読める。許可するオリジンは信頼できるものだけを明示的に照合すべきである。

エAccess-Control-Allow-Origin に具体的なオリジンが入っている限り,たとえ攻撃者のオリジンでも,プリフライトで必ず拒否されるので実際の要求は送られない。

単純要求(GET など)はプリフライトされずに実際の要求が送られるので,必ず拒否されるとはいえない。具体的なオリジンが入っていれば安全という誤解であり,Origin を反射するサーバでは攻撃者のオリジンも許可される。

検証用の出典出典照合済み
Fetch Standard (WHATWG) / MDN Cross-Origin Resource Sharing (CORS) / OWASP HTML5 Security Cheat Sheet
照合の根拠(6 件)

Fetch Standard は fetch.spec.whatwg.org が取得できないため,同じ標準のソース(whatwg/fetch の fetch.bs)で照合した。サードパーティ Cookie を既定で制限するブラウザでは送られない場合もあるが,問題は SameSite=None の Cookie が仕様上送られる前提での CORS 設定のリスクを問うており,正解は変わらない。

問題 ID A2-SEC-0201 · AI 作成のオリジナル問題 · 正解と各選択肢の根拠を出典の原文で確認しています。 照合日 2026-11-08

非公式の学習用アプリです(IPA とは関係ありません)。問題はすべて AI が作成したオリジナルで、誤りを含む場合があります。