前言
最近系統被 Checkmarx V8.9 版掃出說有 Code Injection 的問題,
看了報告發現因為程式中有使用 System.Reflection.MethodInfo 然後呼叫它的 Invoke 的 Method,
Invoke 的 參數值是來自 Client 的 Request 資料。
解法
這顯然又是需要驗證的問題。
就是從 Client 送上來的資料,我們當然是需要檢查沒問題後才來執行的。
所以有以下幾透方式,
轉成 int, guid 或 hash 比較,再不行,就是透過 Replace 將一些特殊字處理掉。
例如 $”{request到的變數}”.Replace(“a”, “b”); 或是用 regex replce 也可以的哦!