Я выполняю сканирование для одного проекта c # и сталкиваюсь с одной проблемой в приведенной ниже части кода
if (this.UserInfo != null && this.Emp != null)
{
ProcessStartInfo pInfo = new ProcessStartInfo(this.Emp.ResetURL + HttpUtility.UrlEncode(Token));
pInfo.CreateNoWindow = false;
Process.Start(pInfo);
}
Получение проблемы с уязвимостью внедрения команд в строке
ProcessStartInfo pInfo = new ProcessStartInfo(this.Emp.ResetURL + HttpUtility.UrlEncode(Token));
Iпровел некоторые исследования и обновил код, как показано ниже
string fileName = (this.Emp.ResetURL + HttpUtility.UrlEncode(Token));
if (fileName == null || !Regex.IsMatch(fileName, "^[a-zA-Z]+$"))
{
return ;
}
ProcessStartInfo pInfo = new ProcessStartInfo(fileName);
pInfo.CreateNoWindow = false;
Process.Start(pInfo);
Но проблема все еще сохраняется.
Я ссылался на некоторые ссылки https://rules.sonarsource.com/csharp/tag/injection/RSPEC-2076?search=command;https://dotnet -security-guard.github.io / SG0001.htm
Я пробовал много вещей, похожих на описанные выше, но все еще без изменений. Может кто-нибудь помочь нам решить эту проблему. Заранее спасибо.