Home avatar

静态代码扫描

  • 规则分类
    • 强制性(Mandatory):必须遵守,无偏差。
    • 必需(Required):需遵守,可提供偏差申请。
    • 建议性(Advisory):最佳实践,不强制。
  • 静态代码分析:要求使用工具检测并报告违反规则的代码。
  • 初始化:避免类初始化的相互依赖。
  • 返回值处理:方法返回值不可忽略,需进行正确处理。
  • 涉及内存管理、线程安全、数据验证等问题。
  • 禁止使用会搜索文件系统或调用Shell的函数(如systempopen)。
  • 输入验证:对输入字符串进行白名单校验,移除转义字符。
  • Java代码:所有Java应用和库必须使用模糊处理。
  • 安全替代:优先使用安全函数(如strncpymemcpy_s),避免危险函数(如strcpy)。
  • 数据溢出防护:避免将大数值赋值给小数据类型的变量。
  • 异常处理:捕获的异常需进行处理,不得省略。
  • 保护敏感信息的编码实践需遵循指定标准。
  • 加密库(如OpenSSL)只能通过库函数调用。
  • 禁止通过Shell或进程生成函数调用加密函数。
  • 未初始化变量: 某些模块(如 Fls_PBcfg.c)中可能存在未初始化变量导致的逻辑错误。
  • 未处理返回值: 一些文件中未能正确检查函数返回值,可能引发未预料的异常。
  • 内存安全问题: 涉及对缓冲区和指针的边界检查不充分。