我需要通過命令行調用一個自定義腳本,這些腳本需要很少的參數並在Linux機器上調用。當前版本容易出現各種shell注入,如何清理用戶給出的參數?參數包括登錄和路徑(Unix或Windows路徑),用戶應該能夠輸入任何可能的路徑(該路徑指的是用戶服務器上的遠程路徑)。如何清理Runtime.exec()中使用的用戶輸入?
的代碼,現在只是看起來是這樣的:
Process process = Runtime.getRuntime().exec("myscript " + login + " " + path);
啓動沒有參數的腳本,然後通過stdin/out與它通信。你永遠不會保護Runtime.exec。 – matt