gists

q

クライアントサイドパストラバーサルの概要

a

クライアントサイド・パストラバーサル(Client-side Path Traversal)は、ブラウザ側(JavaScriptなど)で組み立てられるファイルパスやURLパスに対して、ユーザー入力が適切に制限・正規化されないまま使われることで起きる問題の総称です。典型的には ../ などを混ぜて、想定外の場所(親ディレクトリ側など)を参照させようとします。

何が起きるか(影響)

クライアント側だけで成立する場合もありますが、多くは「クライアントの不備がサーバ側のファイル参照APIや静的配信と組み合わさって」影響が顕在化します。

※ただし、実際にサーバが厳密にパス検証していれば、クライアント側で ../ を作れても被害は限定的です。

典型例(イメージ)

また、SPAで「テンプレート名」「言語ファイル名」「画像パス」などを入力やURLパラメータから決めて import() / fetch() / img.src に入れるケースも類型です。

ありがちな発生箇所

対策(要点)

「クライアント側で頑張る」だけでは不十分で、基本はサーバ側(または提供基盤)で防ぐのが重要です。

補足(よく混同される点)

必要なら、対象が「Webサイト(SPA)」「Electronアプリ」「特定のコード断片」どれかを教えてください。想定される攻撃パターンと、最小変更での具体的な対策案に落とし込んで説明できます。

q

ディレクトリトラバーサルと何が違う?

a

ディレクトリトラバーサル(Path/Directory Traversal)とクライアントサイド・パストラバーサルの違いは、「脆弱性の主戦場がどこか」と「成立条件」です。

1) どこで起きるか(主戦場)

2) 影響の出方(成立条件)

3) 攻撃者視点での違い(何が「できる」か)

4) まとめ(短く)

必要なら、例(SPAのfetch、i18nの動的ロード、Electronのfile:// 等)を挙げて「これはどっちの分類?」「実害が出る条件は?」をあなたのケースに合わせて整理します。