SQL注入、代码安全、非法计算、线程锁死、命令注入、堆栈溢出、危险函数
内存泄露、变量未初始化使用、数组越界、空指针解引用、资源泄露、缓冲区溢出
圈复杂度、函数扇入、函数扇出、代码注释率、代码行数、Halstesd度量集
抽象语法树、到达定值分析、前/后支配分析、活跃变量分析、控制流分析、调用分析、变量binding分析、污点分析、符号执行
检查代码是否符合编码规范,有助于维持代码风格的一致性;发现潜在的错误和漏洞,如语法错误、逻辑错误、内存泄漏等
识别代码中的安全漏洞,如SOL注入、跨站脚本攻击(XSS)、缓冲区溢出等
在开发早期就能发现问题,避免问题在项目后期才被发现,减少返工
确保软件开发过程能够按照既定标准、法规要求和最佳实践来执行的关键
通过持续的静态分析,可以避免代码“腐烂”,有助于新加入的开发者快速理解现有代码的结构和质量
可以集成到持续集成(CI)流程中,确保每次代码提交都不会降低项目质量