UMC.SYSERR

“不需要的 UMC 方法调用”错误组与可能不需要的 System.exit() 和 System.gc() 等方法相关。调试打印(比如 System.out.println() 和 System.err.println())也可能是不需要的。当调用 System.err 流的打印方法时,会显示 UMC.SYSERR 警告。

漏洞与风险

在成熟的应用程序中,这种调用应限制在一个记录模块和功能控制台输出中;否则它将导致滥用诊断,这一问题应当进行修复。

缓解与预防

用记录器模块调用来替换打印到 syserr 的调用。用记录器调用或特定方法(比如 printRawToUser())的调用来替换打印到 stdout 的调用。

示例 1

复制
      public int internalCalculateSum(int x, int y) {
         if (x < 0 || y < 0) {
             System.err.println("XXX: got strange arguments!");
         }
         return x + y;
     }

针对第 11 行报告 UMC.SYSERR:使用 System.err 方法调用的调试打印并非所需。

安全培训

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