這個程式compile後會產生一個.exe檔
然後我們會用windows排程來執行他
或由其他程式觸發執行
執行時會代參數進來
然後使用checkmarx去掃描會出現Code Injection的風險
Code Injection會發生在Invoke那行
請問我該如何改寫才可避免這個問題?
程式碼片段如下
class Program
{
static void Main(string[] args)
{
.
.
.
strFunction = args[1];
strRunDate = args[2];
strRunTime = args[3];
strOrgNo = args[4];
strType = args[5];
var m = typeof(Schedule).GetMethod(strFunction,
BindingFlags.Public | BindingFlags.Static);
m.Invoke(null, new object[] { strOrgNo, strRunDate,
strRunTime });//strRunDate Code Injection
.
.
.