CS.INFORMATION_EXPOSURE.ALL

潜在的安全信息暴露

此检查器会标记任何程序数据潜在的意外日志记录或打印到控制台。此检查器会标记使用最广泛的日志记录方法的所有调用实例,这些方法会从错误或严重错误级别报告消息。这是一个信息级别的检查器,专为不需要内部数据日志记录的应用程序设计。

可对检查器进行参数化处理。通过修改包含检查器描述的 XML 文件(位于 <install>\plugin\csharp 目录中),可以更改检查器识别的日志记录方法列表。

漏洞代码示例 1

复制
   namespace Program
   {
       class Program
       {
           static int x = 10;
           static void Main(string[] args)
           {
               Console.WriteLine("internal data X: " + x);
           }
      }
  }

Klocwork 报告第 8 行出现 CS.INFORMATION_EXPOSURE.ALL 缺陷,这表示内部数据已传递到控制台打印方法,这可能导致意外的敏感数据暴露。

漏洞代码示例 2

复制
   namespace Program
   {
       class Program
       {
           static int x = 10;
           static void Main(string[] args)
           {
               int address = 20;
               log4net.ILog log = log4net.LogManager.GetLogger("application.log");
              log.Error("Application not started :"+ address);
          }
      }
  }

Klocwork 报告第 10 行出现 CS.INFORMATION_EXPOSURE.ALL 缺陷,这表示内部数据已传递到错误级别的日志记录方法,这可能导致意外的敏感数据暴露。

安全培训

应用程序安全培训材料由 Secure Code Warrior 提供。