ディレクトリトラバーサルとは?
ディレクトリトラバーサルとは、ファイル名を受け取るWebアプリに「../」などの相対パスを紛れ込ませ、公開範囲の外にあるファイルを読み出したり書き換えたりする攻撃です。パス・トラバーサルとも呼びます。対策は入力からパスを組み立てず、ファイル名を直接指定させないことです。
基本情報技術者試験の過去問では3回出題されています(2017年度〜2024年度)。
でぃれくとりとらばーさる
ディレクトリトラバーサルの意味
ファイル名を受け取るWebアプリに「../」などの相対パスを紛れ込ませ、公開範囲の外にあるファイルを読み出したり書き換えたりする攻撃です。パス・トラバーサルとも呼びます。対策は入力からパスを組み立てず、ファイル名を直接指定させないことです。
ディレクトリトラバーサルの具体例
画像表示のパラメータに「../../etc/passwd」のような値を渡し、Webルート外の設定ファイルや認証情報を読み出す。ダウンロード機能や、テンプレート名をパラメータで受け取る実装が狙われやすい典型パターンです。
ディレクトリトラバーサルは試験でどう引っ掛けられる?
「../ を除去する」だけの対策は、二重エンコードや別表記で迂回され得ます。ファイル名を英数字だけに制限する、あるいは識別子とファイルの対応表で解決するほうが確実です。SQLインジェクションと対象(DBかファイルか)を取り違えないこと。
ディレクトリトラバーサルと関連する用語
ディレクトリトラバーサルが出た過去問
ディレクトリトラバーサル攻撃に該当するものはどれか。
正解:攻撃者が,パス名を使ってファイルを指定し,管理者の意図していないファイルを不正に閲覧する。
要点:ディレクトリトラバーサルはパス指定を細工した不正閲覧
ディレクトリトラバーサルは、ファイル名を受け取るWebアプリケーションに対して「../」などを含むパスを与え、本来公開する意図のない上位ディレクトリのファイルを読み出させる攻撃です。パスの検証不足が原因なので、入力値の正規化や、指定できる範囲を限定する対策が有効です。
出典:平成29年度 春期 基本情報技術者試験 午前 問37(IPA)SQLインジェクション攻撃による被害を防ぐ方法はどれか。
正解:入力された文字が、データベースへの問合せや操作において、特別な意味をもつ文字として解釈されないようにする。
要点:SQL文の制御記号として解釈させないのが根本対策
SQLインジェクションは、入力値に含まれる引用符などの記号がSQL文の一部として解釈されてしまうことで起こる。対策は、入力された文字をSQLにとって特別な意味をもつ記号として扱わせないことであり、プレースホルダを使った問合せや適切なエスケープ処理がこれに当たる。HTMLタグの無害化はクロスサイトスクリプティング、上位ディレクトリ指定の拒否はディレクトリトラバーサルへの対策である。
出典:令和4年度 s 基本情報技術者試験 kamokuA 問36(IPA)SQLインジェクションの対策として、有効なものはどれか。
正解:プレースホルダを使って命令文を組み立てる。
要点:SQLインジェクション対策の基本はプレースホルダ利用
SQLインジェクションは、入力値がSQL文の一部として解釈されることで生じる。プレースホルダ(バインド機構)を使えば、値はあくまでパラメタとして渡され、SQL文の構造を変えられないため攻撃が成立しない。他の選択肢はオープンリダイレクトやディレクトリトラバーサルなど、別の脆弱性への対策である。
出典:令和6年度 (公開問題) 基本情報技術者試験 kamokuA 問10(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。