runtime.exec可能導致註入:代碼中使用runtime.exec可能導致安全風險:String str = "cmd.exe /C cd E:\\MinGW";這樣才是正確的 ,cd不是單獨的程序是調用cmd控制臺裏面的命令。
String str[]=new String[]{"cd E:\\MinGW","mingwvars.bat","gcc H:\\mymain\\calc.c H:\\mymain\\main.c -o H:\\mymain\\main"}。
exec族函數的作用:
exec函數族的作用是根據指定的文件名找到可執行文件,並用它來取代調用進程的內容,換句話說,就是在調用進程內部執行壹個可執行文件。這裏的可執行文件既可以是二進制文件,也可以是任何Linux下可執行的腳本文件。
與壹般情況不同,exec函數族的函數執行成功後不會返回,因為調用進程的實體,包括代碼段,數據段和堆棧等都已經被新的內容取代,只留下進程ID等壹些表面上的信息仍保持原樣。
頗有些神似"三十六計"中的"金蟬脫殼"。看上去還是舊的軀殼,卻已經註入了新的靈魂。只有調用失敗了,它們才會返回壹個-1,從原程序的調用點接著往下執行。