繁体   English   中英

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

[英]Sanitze path for Windows command line (cmd.exe)

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

因此,如何清理路径以确保Windows中不能包含其他命令? 可以在Java程序之类的自写程序中进行清理

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM