201112222012Path Manipulation - Fortify 白箱測試工具
Fortify....實在是個很機車的白箱檢測工具...
程式被掃描時感覺就像脫光了衣服讓人家看個夠@@
由其是對於I/O的程式碼部份條件又特別嚴苛...
幾乎完全不允許檔案存取路徑或是檔名是以變數方式傳進來...
當然,這樣做確實對系統安全有很大幫助...
然而很多時候,程式設計師幾乎已經可以確定用變數傳進來的檔案路徑是OK的...
偏偏fortify確say no...總是出現path manipulation或command injection的critical弱點...
這時怎麼辦咧~~~
在這提供一個撇步...雖然不是很恰當...但對於避開fortify的掃描卻很好用@@
那就是把傳進來的參數過濾一次,只是這個filter只單純地將字母傳入再傳出而已~~
public String filter(String str_in){ String str_out = null; if(str_in!=null){ str_out = ""; char[] chars = str_in.toCharArray(); int length = chars.length; for(int i=0;i<length;i++){ }
return str_out;
}
|
舉例來說,也就是傳入的s與輸出的s是不一樣的,因為輸出的s相當於是"白名單"內的s...
如此,再用fortify掃一次程式...可以發現原有的critical都消失嚕~~~
如果傳進來的檔名或路徑是中文咧???.....嘿嘿....
其實整個感覺很像在用騙的^^|||
回應