我的应用程序正在使用
Process.Start
打开另一个应用程序来运行。 VeraCode [安全软件扫描工具] 将此命令报告为“操作系统命令注入漏洞”。我想得到一些评论。我在网上找到了很多关于过滤输入或限制程序名称的信息;但是,我很好奇是否还有其他使用 Process.Start
的替代方法?编辑:
感谢您的评论,这是示例之一,是的,它正在从用户那里获取输入:
public static void Run(string fileName, string arguments, bool waitForExit)
{
Process p = Process.Start(fileName, arguments);
if (waitForExit)
p.WaitForExit();
}
谢谢!
类只不过是一个托管包装类,本机 Create Process 及其变体,例如 Create Process As User 。
就我个人而言,我没有听说过任何有关
Process.Start
的问题,请澄清问题
问候
属性设置为 false。那么 Veracode 就不会认为它是一个漏洞。
using (WinProcess myProcess = new WinProcess())
{
myProcess.StartInfo.FileName = "notepad.exe";
myProcess.StartInfo.Arguments = Path.GetFileName(fullPath);
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.WorkingDirectory = Path.GetDirectoryName(fullPath);
myProcess.StartInfo.RedirectStandardOutput = false;
myProcess.Start();
}