我正在为一个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));
我做了一些研究并更新了如下代码
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
我尝试了许多与上述类似的操作,但仍然没有任何变化。有人可以帮助我们解决此问题。预先感谢。