Windows命令行(cmd.exe)的Sanitze路径

时间:2018-10-15 13:51:28

标签: java windows cmd

我想使用以下命令从Windows命令行(cmd.exe)启动程序:“ myProg.exe [path]”,例如“ myProg.exe c:\ files \ file.txt”,但该路径由用户定义,必须使用某种算法进行检查。 (无manuell检查)我必须防止用户从命令中“转义”并运行自己的命令。

那么我该如何清理路径以确保它不能包含Windows中的其他命令?可以在Java程序之类的自写程序中进行消毒

1 个答案:

答案 0 :(得分:0)

ProcessBuilder多年前取代了Runtime.exec。 ProcessBuilder将参数直接传递给流程;由于您自己不需要构建命令字符串,因此不会无意间执行第二条命令。

ProcessBuilder builder = new ProcessBuilder("myProg.exe", userPath);
builder.inheritIO();
Process process = builder.start();
相关问题