問題
最近同事詢問在處理 Checkmarx (V 9.4.5.1012 HF24) Path Traversal 透過 Replace 卻無法消除問題。
來源是 data ,目的地是 FilesName
程式如下,
1 | [] |
從 Checkmarx 管理 UI 中發現,Checkmarx 似乎不理會 FilesName 後面的 Replace,
直接就決定 FilesName 這裡有問題。
都還在處理 File 的路徑,Checkmarx 怎麼直接就噴有問題呢?
解法
從 data.File,File 是 UploadArichiveClassficationReportForm 類別的屬性名稱。
但從上述來看, Checkmarx 將 File.FilesName 的 File 當成是 System.IO.File。
看來是因為 屬性 名稱取成 File ,所以中招了 …
那怎麼辦呢?
1.改屬性名稱,將File改成 別的屬性名稱,儘量別跟 System.IO 類別名稱一樣
2.先將 data.File 放到變數之中,再來操作,如下
1 | [] |