簡體   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