我正在通過Hp Fortify運行代碼並且有一些路徑處理髮現。我瞭解它的背景並試圖解決。HP Fortify驗證規則路徑操作
我試圖集中它來代替從數據庫中查詢某個路徑值來存儲輸出文件(日誌,導出數據等)的所有地方。因此,我不想讓File.WriteAllText()帶有一些路徑+文件名,內容,而是想包裝成
FortifyFileWriteAllText()。然後,在這個函數中我做路徑驗證檢查一次達陣,如果有效,才允許寫繼續等......
public static bool FortifyFileWriteAllText(string fileToWrite, string content)
{
if(! MyPathValidationRoutine(fileToWrite))
return false;
File.WriteAllText(fileToWrite, content);
return true;
}
所以,我知道這是很實際的縮寫驗證和預防壞寫道,但我呼籲Path.GetFullPath(),以防止任何這樣的..\..\..
路徑引用。然後查看最後一個路徑,明確指出根目錄C:,C:\ Windows和其他一些東西,但也有一個「清理」路徑列表。
那麼,我將如何去應用一個規則,說什麼去這個例程是好的,並已明確檢查和確定。
而不是通用的清潔規則,我不得不去路徑操縱污點。謝謝 – DRapp