org.apache.commons.execJavaライブラリを使用して実行可能ファイルを呼び出したい。オブジェクトはCommandLineコマンドラインインジェクションから保護しますか?たとえば、私が呼び出す場合:
String singleStringArgument = "-whatever;rm -rf ~/*"; // evil looking argument!
CommandLine cl = new CommandLine(new File(pathToExe,exeName));
cl.addArgument(singleStringArgument); // oh no!
Executor exe = new DefaultExecutor();
exe.execute(cl);
意図したコマンドにrm -rf ~/*加えて実行されますか?もしそうなら、これから保護するための最良の方法は何ですか?
APIはaddArgument()「引用符を処理する」と言っていますが、このコンテキストでそれが何を意味するのかわかりません。Linuxボックスで何が起こるかを確認するためにテストケースを作成することもできますが、他のプラットフォームでも安全であることを確認したいと思います。