首页 > 解决方案 > 如何修复 SCS0018?

问题描述

Visual Studio 中的安全扫描 SCS0018 警告在构建期间显示。目前,我正在努力消除这些警告。我尝试了几个 MSDN 站点,但没有运气。我也读过 OWSAP,但它们与 C# 没有明确的关系。请找到路径遍历警告的图像。

路径遍历警告消息

代码:

   public void Move(string sourceFileName, string destinationFileName)
    {
        
        try
        {
            System.IO.File.Move(sourceFileName,destinationFileName);
        }
        catch (System.Exception e)
        {
        }
   }

标签: c#warningssuppress-warningspath-traversalsecurity-code-scan

解决方案


首先,尝试一下 5.0.0 版本,它有更好的不可信输入跟踪,在这种情况下可能不会给你警告。

如果它仍然给您警告,您需要正确验证或清理不受信任的参数。但是 SCS 不够智能,无法识别自定义验证功能,因此您需要将其添加到配置文件中,例如:

Sanitizers:
  - Type: NamespaceAndClassName
    TaintTypes:
      - SCS0018
    Methods:
      - Name: SanitizePath

有关更多消毒剂示例,请参阅内置配置

相反,如果您不希望有一个专用函数,而是内联验证它,另一个选项是抑制警告


推荐阅读