SpotBugs 是一个针对 Java 应用程序的静态分析工具和字节码分析器。它扫描编译后的类文件以识别错误、安全漏洞和性能问题,而无需执行代码。该系统既是错误检测器,也是静态应用程序安全测试 (SAST) 工具,用于定位逻辑错误和 API 滥用。
spotbugs/spotbugs 的主要功能包括:Java Bytecode Analysis Tools, Java Static Analysis Tools, Java Web Security, Static Code Analyzers, Data Flow Analysis, Operand Stack Simulation, Java Concurrency Analysis, Security Auditing。
spotbugs/spotbugs 的开源替代品包括: uber/nullaway — NullAway is a Java static analysis tool and build-time detector designed to identify null pointer risks. It functions… pmd/pmd — PMD is a multi-language static code analyzer used to identify programming flaws, unused variables, and dead code… checkstyle/checkstyle — Checkstyle is a Java static analysis tool and linter designed to identify and enforce coding standards and best… yandex/gixy — Gixy is a static configuration analyzer and security auditor for Nginx. It functions as an infrastructure-as-code… col-e/recaf — Recaf is a suite of specialized tools for assembling, editing, deobfuscating, decompiling, and instrumenting Java… crytic/slither.
NullAway is a Java static analysis tool and build-time detector designed to identify null pointer risks. It functions as a nullability checker that uses annotations to verify that references are not null before they are dereferenced, preventing runtime crashes. The analyzer implements the JSpecify standard to ensure consistent nullability annotations across different Java libraries. It distinguishes itself through the use of a service provider interface to model the nullability behavior of third-party libraries that lack source annotations and by providing specialized support for Lombok-gener
PMD is a multi-language static code analyzer used to identify programming flaws, unused variables, and dead code without executing the program. It functions as a code smell detector and coding standard enforcer, ensuring source code adheres to specific naming conventions, structural requirements, and project style guides. The project features an XPath-based rule engine that allows users to define custom analysis patterns using queries against an abstract syntax tree. It also includes a copy-paste detector to identify duplicated code blocks across multiple files and a visual rule designer for
Checkstyle is a Java static analysis tool and linter designed to identify and enforce coding standards and best practices. It functions as a code quality auditor and Javadoc validation tool, checking source code against configurable rulesets to ensure structural and stylistic consistency. The project allows for the creation of custom linting rules by extending a core API to inspect the abstract syntax tree. It further enables specialized validation through the use of XPath expressions to query the syntax tree for specific code patterns and violations. Capability areas include the enforcement
Gixy is a static configuration analyzer and security auditor for Nginx. It functions as an infrastructure-as-code security scanner and web server configuration linter designed to identify vulnerabilities and misconfigurations in server definitions before deployment. The tool focuses on detecting high-risk security flaws, including host header spoofing, server-side request forgery, and path traversal. It specifically audits Nginx configurations for risks such as HTTP splitting, multiline header issues, and unauthorized third-party access resulting from incorrect Referer or Origin header patter