
ウェブサイトの住所録を想像してください。普通は見れる範囲が決まってますが、悪い人が「..」という裏技を使って、勝手に別の家や会社の秘密のファイルを見ちゃうのがディレクトリ・トラバーサルです。まるで、自分の家の住所を悪用して、他人の家に侵入するようなものですね。
面接官:ディレクトリ・トラバーサルについて説明してください。
私:ディレクトリ・トラバーサルは、Webアプリケーションの脆弱性の一つで、攻撃者がWebサーバー上の制限されたディレクトリ外のファイルにアクセスできてしまうものです。
以前、ECサイトの開発プロジェクトで、画像表示機能にこの脆弱性があることが判明しました。
ユーザーがアップロードした画像のファイル名をURLで指定する際に、ディレクトリ・トラバーサルの脆弱性を利用されると、`/etc/passwd` のような重要なシステムファイルにアクセスされる危険性がありました。
これを解決するために、ファイル名に「..」のような相対パスを含むものを拒否するバリデーション処理を実装し、さらに、ユーザーがアップロードしたファイルを特定のディレクトリに隔離し、そのディレクトリ外へのアクセスを制限する設定を行いました。
結果として、ディレクトリ・トラバーサルの脆弱性を完全に排除し、ECサイトのセキュリティを大幅に向上させることができました。
現役エンジニアによる深掘り解説
メリット
攻撃の成功率を低下: 適切な対策を講じることで、攻撃者がシステムファイルにアクセスするのを防ぎ、機密情報の漏洩リスクを大幅に軽減できます。
Webアプリケーションの安全性を向上: ディレクトリ・トラバーサル対策は、他の脆弱性対策と組み合わせることで、Webアプリケーション全体のセキュリティレベルを向上させます。
企業の信頼性を維持: セキュリティ侵害を防ぐことで、顧客やパートナーからの信頼を維持し、企業イメージを保護します。
デメリット
実装コストの増加: バリデーション処理やアクセス制限の設定など、対策の実装には一定のコストがかかります。
パフォーマンスへの影響: 過度なバリデーション処理は、Webアプリケーションのパフォーマンスに影響を与える可能性があります。
設定ミスのリスク: アクセス制限の設定が不適切だと、正規のユーザーがファイルにアクセスできなくなる可能性があります。
⚠️ 面接突破のワンポイント
- ディレクトリ・トラバーサルの対策方法(入力値検証、アクセス制限など)を具体的に説明できるように準備しましょう。
- 実際にディレクトリ・トラバーサルが発生するコード例を提示し、どのように攻撃を防ぐかを説明できると高評価につながります。


