如何修复显示不受控制的搜索路径元素的 CWE-427?

问题描述

这是我抛出错误代码

     string FilePath = GetFilePath(); 

     string path = @"/Select," + FilePath;

     System.Diagnostics.Process.Start("explorer.exe",path); // Error throws here

说明: 如果未明确设置完整路径,Windows 将在整个路径中搜索程序。这可能允许木马或其他 改为执行恶意代码。另外,请确保指定了文件扩展名,否则多个 操作系统将尝试扩展。例如,.com 程序将在 .exe 程序之前运行,提供 程序替代的机会。

确保提供指定要执行的程序的完整路径。

我尝试了很多场景,但没有任何效果

解决方法

通过创建常量变量并在函数内部使用它来解决该问题,并为该方法添加了空检查和文件扩展名检查。

谢谢@Rene。您的意见对我有所帮助。