オープンリダイレクトとは?おーぷんりだいれくと
オープンリダイレクトとは、Webアプリが転送先のURLを利用者からの入力のまま受け取り、任意の外部サイトへ飛ばせてしまう実装上の欠陥。リンクの見た目は正規サイトのドメインで始まるため、受け取った人が安全だと誤解しやすく、フィッシングの入口として悪用される。
最終更新:2026-10-09
この語が出る過去問を解く →背景
ログイン後に元のページへ戻す、外部リンクへ出る前に確認画面を挟むといった用途で、「次に行く先」をURLの引数に持たせる作りは古くから広く使われてきた。この引数を検査せずにそのまま使うと、本来は自サイト内の戻り先を渡すための欄が、そのまま外部への転送装置になる。利便性のために開けた入口が攻撃者にも同じだけ使える、という設計上の落とし穴である。
具体例
大学のポータルサイトが、ログイン後に元のページへ戻すため「https://portal.example.ac.jp/login?next=戻り先のURL」のように戻り先を引数で受け取る作りを考える。nextの値を確かめずにそのまま転送すると、攻撃者はnextに偽サイトのURLを入れたリンクを学生へメールで送れる。リンクは大学のドメインで始まるので受け取った人は信じて開き、本物のログインを済ませた直後に、そっくりに作られた偽のログイン画面(「もう一度入力してください」)へ運ばれて、IDとパスワードを入力してしまう。
試験での引っ掛け
スクリプトを送り込むXSS、利用者の権限で操作を実行させるCSRFとは別物。オープンリダイレクトでは自サイトのデータは書き換わらず、被害はリンクを踏んだ人が外部の偽サイトへ運ばれることに限られる。対策は入力値のエスケープではなく、転送先を許可リストで限定するか、URLではなくID番号で指定させること。
関連用語
出た過去問
出典:令和6年度 公開問題 基本情報技術者試験 科目A 問10(IPA)解説で登場
SQLインジェクションの対策として、有効なものはどれか。
正解:プレースホルダを使って命令文を組み立てる。
要点:SQLインジェクション対策の基本はプレースホルダ利用
SQLインジェクションは、入力値がSQL文の一部として解釈されることで生じる。プレースホルダ(バインド機構(値を後から別に渡す仕組み))を使えば、値はあくまでパラメタとして渡され、SQL文の構造を変えられないため攻撃が成立しない。他の選択肢はオープンリダイレクトやディレクトリトラバーサルなど、別の脆弱性への対策である。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。