ディレクトリトラバーサル
ディレクトリトラバーサルを防げる可能性のあるアルゴリズムは以下のようなものである:
URIの要求がファイルの要求にならないように処理する。たとえば、後続の処理を続ける前にユーザーコード内にフックを実行する。
ファイルやディレクトリへのURI要求がなされるべきときは、存在するならファイルやディレクトリへのフルパスを構築し、すべての文字を正規化する (たとえば、%20 をスペースに変換する)。
「文書ルート」は完全修飾されており、正規化されており、パスは既知で、この長さNの文字列であると仮定する。このディレクトリ外のファイルは提供できないと想定する。
要求されたファイルへの完全修飾パスの先頭N文字が「文書ルート」と正確に同じであることを確認する。
もしそうなら、ファイルを返すことを許す。
そうでなければ、要求は明らかにWebサーバが提供することを許されているもの領域を踏み越えているので、エラーを返す。