ディレクトリトラバーサル
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/11/30 13:29 UTC 版)
ディレクトリトラバーサルを防ぎうる手法
ディレクトリトラバーサルを防げる可能性のあるアルゴリズムは以下のようなものである:
- URIの要求がファイルの要求にならないように処理する。たとえば、後続の処理を続ける前にユーザーコード内にフックを実行する。
- ファイルやディレクトリへのURI要求がなされるべきときは、存在するならファイルやディレクトリへのフルパスを構築し、すべての文字を正規化する (たとえば、
%20
をスペースに変換する)。 - 「文書ルート」は完全修飾されており、正規化されており、パスは既知で、この長さNの文字列であると仮定する。このディレクトリ外のファイルは提供できないと想定する。
- 要求されたファイルへの完全修飾パスの先頭N文字が「文書ルート」と正確に同じであることを確認する。
- もしそうなら、ファイルを返すことを許す。
- そうでなければ、要求は明らかにWebサーバが提供することを許されているもの領域を踏み越えているので、エラーを返す。
関連項目
- Chroot jailsは、作成方法が正しくないとディレクトリトラバーサルの影響を受けるかもしれない。ディレクトリトラバーサルの攻撃媒介として、jail外のディレクトリ上にあるファイルを開いたファイル記述子がありうる。作業ディレクトリはもう一つの攻撃媒介になりうる。
リソース
情報源
- Imperva (英語)
外部リンク
- ディレクトリトラバーサルの使用による有罪判決[1] [2] (英語)。
- Bugtraq: IIS %c1%1c remote command execution (英語)
- Cryptogram Newsletter July 2000 [3]. (英語)
- Armorize Technologiesによる、2000年以降の既知のディレクトリトラバーサル脆弱性 (英語)
- N-Stalker Web Application Security Scanner - ディレクトリトラバーサルをテストする無料ツール (英語)
- 第4回 UTF-8の冗長なエンコード:本当は怖い文字コードの話|gihyo.jp … 技術評論社
- FIO02-C. 汚染された情報源から取得したパス名は正規化する
- IDS02-J. パス名は検証する前に正規化する
- 安全なウェブサイトの作り方 - 1.3 パス名パラメータの未チェック/ディレクトリ・トラバーサル:IPA 独立行政法人 情報処理推進機構
- ^
..
は通例ファイルシステムにおいて1つ上の階層(親)のディレクトリを指す。
- 1 ディレクトリトラバーサルとは
- 2 ディレクトリトラバーサルの概要
- 3 ディレクトリトラバーサルを防ぎうる手法
- ディレクトリトラバーサルのページへのリンク