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

オープンリダイレクト

ある Web アプリケーションは,ログイン後に returnUrl パラメータで指定された URL へ検査なしで遷移する。攻撃者は returnUrl に外部の偽サイトの URL を仕込んだリンクを配り,正規サイトでログインした利用者を偽サイトへ誘導するフィッシングに悪用した。対策として,最も適切なものはどれか。

  1. ア遷移先を利用者の入力そのものにせず,短い識別子を受け取ってサーバ側で許可済みの URL に対応付けるか,入力をパースしてスキーム・ホスト・ポートを許可リストと照合する。
  2. イreturnUrl が "http://" または "https://" で始まる正しい形式の URL であることを確認してから遷移する。
  3. ウreturnUrl に自サイトのドメイン名(example.com)が前方一致または部分一致で含まれることを確認してから遷移する。
  4. エ遷移の直前に Referer ヘッダを確認し,自サイトのログイン画面からの要求である場合にだけ returnUrl へ遷移する。
正解と解説を見る

正解 ア

この問題の基礎知識

  • オープンリダイレクトは,パラメータで指定された任意の URL へ検査なしで遷移させる脆弱性である。リンクが正規サイトのドメイン名で始まるので利用者が信用しやすく,フィッシングに悪用される。
  • URL は「スキーム://ユーザ情報@ホスト:ポート/パス」の構造をもち,https://example.com@attacker.example/ のホストは attacker.example なので,文字列の一致では遷移先のホストを正しく判定できない。
  • 許可リスト方式は許可するものだけを列挙してそれ以外を拒否するので,拒否リスト方式や「http:// で始まる」などの形式の確認に比べて,想定外の遷移先を通しにくい。
  • Referer ヘッダは遷移元のページを示すものであり,遷移先の安全性を示すものではない。
ア遷移先を利用者の入力そのものにせず,短い識別子を受け取ってサーバ側で許可済みの URL に対応付けるか,入力をパースしてスキーム・ホスト・ポートを許可リストと照合する。正解

遷移先を入力から直接決めず,サーバ側の対応表や許可リストで限定するのがオープンリダイレクトの基本対策である。任意の外部 URL への遷移を防げる。

イreturnUrl が "http://" または "https://" で始まる正しい形式の URL であることを確認してから遷移する。

形式の確認だけでは外部の任意ホストへの URL も通る。構文として妥当であることと,遷移先が安全であることを混同している。

ウreturnUrl に自サイトのドメイン名(example.com)が前方一致または部分一致で含まれることを確認してから遷移する。

文字列の一致検査は example.com.attacker.net のようなホスト名や userinfo で回避される。パースした要素で照合せず文字列で判定するのは危険である。

エ遷移の直前に Referer ヘッダを確認し,自サイトのログイン画面からの要求である場合にだけ returnUrl へ遷移する。

利用者は攻撃者のリンクから正規のログイン画面に入り,そこでログインするので,遷移時の Referer は自サイトになり検査を通過する。遷移先そのものを検査しない限り外部へ誘導される。

検証用の出典出典照合済み
OWASP Unvalidated Redirects and Forwards Cheat Sheet / CWE-601 URL Redirection to Untrusted Site (Open Redirect)
照合の根拠(5 件)
問題 ID A2-SEC-0603 · AI 作成のオリジナル問題 · 正解と各選択肢の根拠を出典の原文で確認しています。 照合日 2026-11-08

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