記事

パストラバーサル対策

https://www.ipa.go.jp/security/vuln/websecurity/parameter.html

ファイルなどをuploadする時に、アップロードされるファイルによっては、アプリケーション内のファイルの改竄や削除などをされることがある

コードで制御できる

対策方法

  • ユーザーが送信してきたファイル名を使用しない
    • 自身のサーバーでidなどを発行する
  • ユーザーが送信してきたファイルパスで任意の場所にアクセスできないようにする
    • if (
        params.fileName.includes('..') ||
        params.fileName.includes('/') ||
        params.fileName.includes('\\')
      ) {
        throw new Error('ファイル名に不正な文字が含まれています');
      }
      
    • | チェック項目 | 意味                  | 想定される攻撃例                         |
      | ------ | ------------------- | -------------------------------- |
      | `..`   | 親ディレクトリを意味          | `../../etc/passwd` → 上位フォルダにアクセス |
      | `/`    | ディレクトリ区切り(UNIX系)    | `/var/www/html/config.json` など   |
      | `\\`   | ディレクトリ区切り(Windows系) | `..\\..\\secret.txt` など          |
      

© 2026 Shotaro Kinjo