Il codice corrente nel mio progetto è mostrato sotto e Veracode segnala che c'è un'iniezione del comando OS
filename = Regex.Replace(filename, "[^a-zA-Z0-9_]", "_") & ".svg"
ProcessStartInfo startInfo = default(ProcessStartInfo);
Process pStart = new Process();
startInfo = new ProcessStartInfo(myExecutedFilePath, "\"" + filename + "\" --export-pdf=\"" + filename + "\""); //OS command injection raises at this line
pStart.StartInfo = startInfo;
pStart.Start();
pStart.WaitForExit();
Quindi, cerco la soluzione per risolvere questo problema da OWASP e Roslyn Security Guard.
Ed ecco il mio codice dopo aver modificato in base a quei post.
filename = Regex.Replace(filename, "[^a-zA-Z0-9_]", "_") & ".svg"
ProcessStartInfo startInfo = default(ProcessStartInfo);
Process pStart = new Process();
startInfo = new ProcessStartInfo();
startInfo.FileName = myExecutedFilePath;
startInfo.Arguments = "\"" + filename + "\" --export-pdf=\"" + filename + "\""; //Veracode still reports the issue at this line
pStart.StartInfo = startInfo;
pStart.Start();
pStart.WaitForExit();
BUT, Veracode riporta ancora l'iniezione del comando OS.
Quindi le mie preoccupazioni qui sono:
-
Ho applicato la soluzione corretta per risolvere l'iniezione del comando OS in questo caso?
-
Oppure, dovrei proporre una mitigazione per questo?