>過去の例にあったような「
http://localhost:8001/../conf/httpd.conf」
>をブラウザで入力してデバッグすると、NoSuchFileExceptionが先に発生するような
>動きをしてしまいました。
ブラウザは、こんなあからさまにディレクトリトラバーサルを起こしそうなURLを
素直にサーバに送らなければいけない義理もないでしょうから、
>「GET /conf/httpd.conf HTTP/1.1」となっていましたので、
というように(勝手に)変換しているのでしょう。
ただ、攻撃者はブラウザを使うとは限らないわけで、TcpClient.javaを使って
client_send.txtに
GET /../conf/httpd.conf HTTP/1.1
と書くと、
if (!realPath.startsWith(DOCUMENT_ROOT)) {
側の処理に流れ込むことが確認できます。