analysis-tools-dev/static-analysis

GitHub: analysis-tools-dev/static-analysis

该仓库提供了一个精心策划的静态分析工具列表,涵盖多种语言与场景,旨在帮助用户发现提升代码质量的工具。

Stars: 14484 | Forks: 1453

Analysis Tools Website 该仓库列出了适用于所有编程语言、构建工具、配置文件等的**静态分析工具**。重点在于那些能提高代码质量的工具,例如 linter(代码检查工具)和 formatter(代码格式化工具)。 官方网站 [analysis-tools.dev](https://analysis-tools.dev/) 基于此仓库,并增加了排名、用户评论以及每个工具的视频等额外资源。 [![Website](https://img.shields.io/badge/Website-Online-2B5BAE)](https://analysis-tools.dev) ![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/d7d8d1fccd120230.svg) [![Links](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a12640fb6c120236.svg)](https://github.com/analysis-tools-dev/static-analysis/actions/workflows/links.yml) ## 符号含义: - :copyright: 代表专有软件。所有其他工具均为开源软件。 - :information_source: 表示社区不再推荐在新项目中使用该工具。该图标链接到相关的讨论 issue。 - :warning: 表示该工具超过 1 年未更新,或者仓库已被归档。 非常欢迎提交 Pull request! 也请查看姊妹项目 [awesome-dynamic-analysis](https://github.com/mre/awesome-dynamic-analysis)。 ## 目录 #### [编程语言](#programming-languages-1) | | | | |---|---|---| | [ABAP](#abap) | [Erlang](#erlang) | [PL/SQL](#plsql) | | [Ada](#ada) | [F#](#fsharp) | [Perl](#perl) | | [Assembly](#asm) | [Fortran](#fortran) | [Python](#python) | | [Awk](#awk) | [Go](#go) | [R](#r) | | [C](#c) | [Groovy](#groovy) | [Rego](#rego) | | [C#](#csharp) | [Haskell](#haskell) | [Ruby](#ruby) | | [C++](#cpp) | [Haxe](#haxe) | [Rust](#rust) | | [Clojure](#clojure) | [Java](#java) | [SQL](#sql) | | [CoffeeScript](#coffeescript) | [JavaScript](#javascript) | [Scala](#scala) | | [ColdFusion](#coldfusion) | [Julia](#julia) | [Shell](#shell) | | [Crystal](#crystal) | [Kotlin](#kotlin) | [Swift](#swift) | | [Dart](#dart) | [Lua](#lua) | [Tcl](#tcl) | | [Delphi](#delphi) | [MATLAB](#matlab) | [TypeScript](#typescript) | | [Dlang](#dlang) | [Nim](#nim) | [Verilog/SystemVerilog](#verilog) | | [Elixir](#elixir) | [Ocaml](#ocaml) | [Vim Script](#vim-script) | | [Elm](#elm) | [PHP](#php) | [WebAssembly](#wasm) | #### [多语言](#multiple-languages-1) #### [其他](#other-1)
显示其他 | | | | |---|---|---| | [.env](#dotenv) | [Embedded Ruby (a.k.a. ERB, eRuby)](#erb) | [Prometheus](#prometheus) | | [Ansible](#ansible) | [Gherkin](#gherkin) | [Protocol Buffers](#protobuf) | | [Archive](#archive) | [HTML](#html) | [Puppet](#puppet) | | [Azure Resource Manager](#arm) | [JSON](#json) | [Rails](#rails) | | [Binaries](#binary) | [Kubernetes](#kubernetes) | [Security/SAST](#security) | | [Build tools](#buildtool) | [LaTeX](#latex) | [Smart Contracts](#smart-contracts) | | [CSS/SASS/SCSS](#css) | [Laravel](#laravel) | [Support](#support) | | [Config Files](#configfile) | [Makefiles](#make) | [Template-Languages](#template) | | [Configuration Management](#configmanagement) | [Markdown](#markdown) | [Terraform](#terraform) | | [Containers](#container) | [Metalinter](#meta) | [Translation](#translation) | | [Continuous Integration](#ci) | [Mobile](#mobile) | [Vue.js](#vue) | | [Deno](#deno) | [Nix](#nix) | [Writing](#writing) | | [Dockerfile](#dockerfile) | [Node.js](#nodejs) | [YAML](#yaml) | | [Embedded](#embedded) | [Packages](#package) | [git](#git) |
## 编程语言

ABAP

- [abaplint](https://abaplint.org) — 用 TypeScript 编写的 ABAP linter。 - [abapOpenChecks](https://docs.abapopenchecks.org) — 通过新的、可自定义的检查来增强 SAP Code Inspector。

Ada

- [Polyspace for Ada](https://www.mathworks.com/products/polyspace-ada.html) :copyright: — 提供代码验证,证明源代码中不存在溢出、除零、越界数组访问以及某些其他运行时错误。 - [SPARK](https://www.adacore.com/about-spark) :copyright: — 适用于 Ada 的静态分析和形式验证工具集。

Assembly

- **STOKE** :warning: — 一个与编程语言无关的 x86_64 指令集随机优化器。它使用随机搜索来探索所有可能的程序转换的极高维空间。

Awk

- [gawk --lint](https://www.gnu.org/software/gawk/manual/html_node/Options.html) — 对可疑或无法移植到其他 awk 实现的构造发出警告。

C

- [Astrée](https://www.absint.com/astree/index.htm) :copyright: — Astrée 自动证明 C/C++ 应用程序中不存在运行时错误和无效的并发行为。它对浮点计算是可靠的(sound),非常快,并且异常精确。该分析器还检查 MISRA/CERT/CWE/Adaptive Autosar 编码规则,并支持 ISO 26262、DO-178C A 级和其他安全标准的资格认证。提供 Jenkins 和 Eclipse 插件。 - [CBMC](http://www.cprover.org/cbmc) — C 程序的有界模型检查器,支持用户定义的断言、标准断言和多种覆盖率度量分析。 - [clang-tidy](https://clang.llvm.org/extra/clang-tidy) — 基于 Clang 的 C++ linter 工具,具有(有限的)修复问题的能力。 - [clazy](https://github.com/KDE/clazy) — 基于 Clang 框架的面向 Qt 的静态代码分析器。clazy 是一个编译器插件,允许 clang 理解 Qt 语义。你可以获得 50 多个与 Qt 相关的编译器警告,范围从不必要的内存分配到 API 的误用,包括用于自动重构的修复提示。 - [CMetrics](https://github.com/MetricsGrimoire/CMetrics) — 测量 C 文件的大小和复杂度。 - [CPAchecker](https://cpachecker.sosy-lab.org) — 一个用于可配置软件 C 程序验证的工具。选择 CPAchecker 这个名称是为了反映该工具基于 CPA 概念并用于检查软件程序。 - [cppcheck](https://cppcheck.sourceforge.io) — C/C++ 代码的静态分析。 - [CppDepend](https://www.cppdepend.com) :copyright: — 测量、查询和可视化您的代码,避免意外问题、技术债务和复杂性。 - [cpplint](https://github.com/cpplint/cpplint) — 遵循 Google 风格指南的自动化 C++ 检查器。 - [cqmetrics](https://github.com/dspinellis/cqmetrics) — C 代码的质量度量。 - [CScout](https://www.spinellis.gr/cscout) — C 和 C 预处理器代码的复杂度和质量度量。 - **ENRE-cpp** :warning: — ENRE(实体关系提取器)是一种用于从源代码中提取代码实体依赖项或关系的工具。ENRE-cpp 是基于 @eclipse/CDT 的 C/C++ 实体关系提取器。(开发中) - [ESBMC](http://esbmc.org) — ESBMC 是一个开源的、宽松许可的、基于可满足性模理论的上下文有界模型检查器,用于验证单线程和多线程 C/C++ 程序。 - **flawfinder** :warning: — 发现可能的安全弱点。 - **flint++** :warning: — flint 的跨平台、零依赖移植版本,flint 是一个在 Facebook 开发并使用的 C++ lint 程序。 - [Frama-C](https://www.frama-c.com) — 一个可靠且可扩展的 C 代码静态分析器。 - [GCC](https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html) — GCC 编译器从版本 10 开始具有静态分析功能。仅在启用分析器支持的情况下配置 GCC 时,此选项才可用。它还可以将其诊断输出为 SARIF 格式的 JSON 文件(从 v13 开始)。 - [Goblint](https://goblint.in.tum.de) — 用于分析多线程 C 程序的静态分析器。其主要重点是检测数据竞争,但它也报告其他运行时错误,例如缓冲区溢出和空指针解引用。 - [Helix QAC](https://www.perforce.com/products/helix-qac) :copyright: — 适用于嵌入式软件的企业级静态分析。支持 MISRA、CERT 和 AUTOSAR 编码标准。 - [IKOS](https://github.com/nasa-sw-vnv/ikos) — 基于 LLVM 的可靠的 C/C++ 代码静态分析器。 - [KLEE](http://klee.github.io/) — 一个构建在 LLVM 编译器基础设施之上的动态符号执行引擎。它可以自动生成程序的测试用例,使测试用例尽可能多地执行程序。 - [LDRA](https://ldra.com) :copyright: — 一个工具套件,包括针对各种标准(包括 MISRA C & C++、JSF++ AV、CWE、CERT C、CERT C++ 和自定义规则)的静态分析 (TBVISION)。 - **MATE** :warning: — 一套用于交互式程序分析的工具,专注于寻找 C 和 C++ 代码中的错误。MATE 使用代码属性图 (CPG) 统一了特定于应用程序和低级别的漏洞分析,从而能够发现依赖于实现细节和目标 C/C++ 程序的高级语义的高度特定于应用程序的漏洞。 - [PC-lint](https://pclintplus.com/) :copyright: — 适用于 C/C++ 的静态分析。在 Windows/Linux/MacOS 上原生运行。分析几乎任何平台的代码,支持 C11/C18 和 C++17。 - [Phasar](https://phasar.org) — 一个基于 LLVM 的静态分析框架,带有污点和类型状态分析。 - [Polyspace Bug Finder](https://www.mathworks.com/products/polyspace-bug-finder.html) :copyright: — 识别 C 和 C++ 嵌入式软件中的运行时错误、并发问题、安全漏洞和其他缺陷。 - [Polyspace Code Prover](https://www.mathworks.com/products/polyspace-code-prover.html) :copyright: — 提供代码验证,证明 C 和 C++ 源代码中不存在溢出、除零、越界数组访问以及某些其他运行时错误。 - [scan-build](https://clang-analyzer.llvm.org/scan-build.html) — 用于通过常规构建驱动内置在 Clang 中的 Clang Static Analyzer 的前端。 - [splint](http://splint.org) — 辅助注释的静态程序检查器。 - [SVF](https://svf-tools.github.io/SVF) — 一个静态工具,能够对 C 和 C++ 程序进行可扩展且精确的过程间依赖分析。 - [TrustInSoft Analyzer](https://trust-in-soft.com) :copyright: — 彻底检测编码及其相关的安全漏洞。这包括可靠的未定义行为检测(缓冲区溢出、越界数组访问、空指针解引用、释放后使用、除零、未初始化内存访问、有符号溢出、无效指针运算等)、数据流和控制流验证以及对形式化规范的完整功能验证。支持 C18 及之前的所有 C 版本和 C++20 及之前的所有 C++ 版本。TrustInSoft Analyzer 将于 2023 年第二季度获得 ISO 26262 认证 (TCL3)。还捆绑了一个 MISRA C 检查器。 - **vera++** :warning: — Vera++ 是一个用于验证、分析和转换 C++ 源代码的可编程工具。

C#

- [.NET Analyzers](https://github.com/DotNetAnalyzers) — 一个使用 .NET Compiler Platform 开发分析器(诊断和代码修复)的组织。 - [ArchUnitNET](https://github.com/TNG/ArchUnitNET) — 一个 C# 架构测试库,用于在 C# 中指定和断言架构规则以进行自动化测试。 - [code-cracker](https://code-cracker.github.io) — 一个使用 Roslyn 生成重构、代码分析和其他便利功能的 C# 和 VB 分析器库。 - **CSharpEssentials** :warning: — C# Essentials 是一组 Roslyn 诊断分析器、代码修复和重构,使使用 C# 6 语言功能变得容易。 - [Designite](http://www.designite-tools.com) :copyright: — Designite 支持检测各种架构、设计和实现坏味道,计算各种代码质量度量,以及趋势分析。 - [Gendarme](https://www.mono-project.com/docs/tools+libraries/tools/gendarme) — Gendarme 检查包含 ECMA CIL 格式代码 (Mono 和 .NET) 的程序和库。 - **Infer#** :warning: — InferSharp(也称为 Infer#)是一个用于 C# 的过程间且可扩展的静态代码分析器。通过 Facebook 的 Infer 的功能,该工具检测空指针解引用和资源泄漏。 - [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer) — 一个 Roslyn 分析器,用于在 C# 中强制执行设计、使用、安全性、性能和样式方面的良好实践。 - [NDepend](http://www.ndepend.com) :copyright: — 测量、查询和可视化您的代码,避免意外问题、技术债务和复杂性。 - [Puma Scan](https://pumasecurity.io) — 当开发团队在 Visual Studio 中编写代码时,Puma Scan 针对常见漏洞(XSS、SQLi、CSRF、LDAPi、加密、反序列化等)提供实时安全代码分析。 - [Roslynator](https://github.com/JosefPihrt/Roslynator) — 由 Roslyn 提供支持,包含 190 多个分析器和 190 多个重构的 C# 集合。 - [SonarAnalyzer.CSharp](https://github.com/SonarSource/sonar-dotnet) — 这些 Roslyn 分析器允许您生成整洁的代码,这些代码是安全、可靠和可维护的,通过帮助您发现和更正代码库中的错误、漏洞和代码坏味道。 - **VSDiagnostics** :warning: — 一组基于 Roslyn 的静态分析器,可与 VS 集成。 - [Wintellect.Analyzers](https://github.com/Wintellect/Wintellect.Analyzers) — .NET Compiler Platform ("Roslyn") 诊断分析器和代码修复。

C++

- [Astrée](https://www.absint.com/astree/index.htm) :copyright: — Astrée 自动证明 C/C++ 应用程序中不存在运行时错误和无效的并发行为。它对浮点计算是可靠的(sound),非常快,并且异常精确。该分析器还检查 MISRA/CERT/CWE/Adaptive Autosar 编码规则,并支持 ISO 26262、DO-178C A 级和其他安全标准的资格认证。提供 Jenkins 和 Eclipse 插件。 - [CBMC](http://www.cprover.org/cbmc) — C 程序的有界模型检查器,支持用户定义的断言、标准断言和多种覆盖率度量分析。 - [clang-tidy](https://clang.llvm.org/extra/clang-tidy) — 基于 Clang 的 C++ linter 工具,具有(有限的)修复问题的能力。 - [clazy](https://github.com/KDE/clazy) — 基于 Clang 框架的面向 Qt 的静态代码分析器。clazy 是一个编译器插件,允许 clang 理解 Qt 语义。你可以获得 50 多个与 Qt 相关的编译器警告,范围从不必要的内存分配到 API 的误用,包括用于自动重构的修复提示。 - [CMetrics](https://github.com/MetricsGrimoire/CMetrics) — 测量 C 文件的大小和复杂度。 - [cppcheck](https://cppcheck.sourceforge.io) — C/C++ 代码的静态分析。 - [CppDepend](https://www.cppdepend.com) :copyright: — 测量、查询和可视化您的代码,避免意外问题、技术债务和复杂性。 - [cpplint](https://github.com/cpplint/cpplint) — 遵循 Google 风格指南的自动化 C++ 检查器。 - [cqmetrics](https://github.com/dspinellis/cqmetrics) — C 代码的质量度量。 - [CScout](https://www.spinellis.gr/cscout) — C 和 C 预处理器代码的复杂度和质量度量。 - **ENRE-cpp** :warning: — ENRE(实体关系提取器)是一种用于从源代码中提取代码实体依赖项或关系的工具。ENRE-cpp 是基于 @eclipse/CDT 的 C/C++ 实体关系提取器。(开发中) - [ESBMC](http://esbmc.org) — ESBMC 是一个开源的、宽松许可的、基于可满足性模理论的上下文有界模型检查器,用于验证单线程和多线程 C/C++ 程序。 - **flawfinder** :warning: — 发现可能的安全弱点。 - **flint++** :warning: — flint 的跨平台、零依赖移植版本,flint 是一个在 Facebook 开发并使用的 C++ lint 程序。 - [GCC](https://gcc.gnu.org/onlinedocs/gcc/Static-Analyzer-Options.html) — GCC 编译器从版本 10 开始具有静态分析功能。仅在启用分析器支持的情况下配置 GCC 时,此选项才可用。它还可以将其诊断输出为 SARIF 格式的 JSON 文件(从 v13 开始)。 - [Helix QAC](https://www.perforce.com/products/helix-qac) :copyright: — 适用于嵌入式软件的企业级静态分析。支持 MISRA、CERT 和 AUTOSAR 编码标准。 - [IKOS](https://github.com/nasa-sw-vnv/ikos) — 基于 LLVM 的可靠的 C/C++ 代码静态分析器。 - [KLEE](http://klee.github.io/) — 一个构建在 LLVM 编译器基础设施之上的动态符号执行引擎。它可以自动生成程序的测试用例,使测试用例尽可能多地执行程序。 - [LDRA](https://ldra.com) :copyright: — 一个工具套件,包括针对各种标准(包括 MISRA C & C++、JSF++ AV、CWE、CERT C、CERT C++ 和自定义规则)的静态分析 (TBVISION)。 - **MATE** :warning: — 一套用于交互式程序分析的工具,专注于寻找 C 和 C++ 代码中的错误。MATE 使用代码属性图 (CPG) 统一了特定于应用程序和低级别的漏洞分析,从而能够发现依赖于实现细节和目标 C/C++ 程序的高级语义的高度特定于应用程序的漏洞。 - [PC-lint](https://pclintplus.com/) :copyright: — 适用于 C/C++ 的静态分析。在 Windows/Linux/MacOS 上原生运行。分析几乎任何平台的代码,支持 C11/C18 和 C++17。 - [Phasar](https://phasar.org) — 一个基于 LLVM 的静态分析框架,带有污点和类型状态分析。 - [Polyspace Bug Finder](https://www.mathworks.com/products/polyspace-bug-finder.html) :copyright: — 识别 C 和 C++ 嵌入式软件中的运行时错误、并发问题、安全漏洞和其他缺陷。 - [Polyspace Code Prover](https://www.mathworks.com/products/polyspace-code-prover.html) :copyright: — 提供代码验证,证明 C 和 C++ 源代码中不存在溢出、除零、越界数组访问以及某些其他运行时错误。 - [scan-build](https://clang-analyzer.llvm.org/scan-build.html) — 用于通过常规构建驱动内置在 Clang 中的 Clang Static Analyzer 的前端。 - [splint](http://splint.org) — 辅助注释的静态程序检查器。 - [SVF](https://svf-tools.github.io/SVF) — 一个静态工具,能够对 C 和 C++ 程序进行可扩展且精确的过程间依赖分析。 - [TrustInSoft Analyzer](https://trust-in-soft.com) :copyright: — 彻底检测编码错误及其相关的安全漏洞。这包括可靠的未定义行为检测(缓冲区溢出、越界数组访问、空指针解引用、释放后使用、除零、未初始化内存访问、有符号溢出、无效指针运算等)、数据流和控制流验证以及对形式化规范的完整功能验证。支持 C18 及之前的所有 C 版本和 C++20 及之前的所有 C++ 版本。TrustInSoft Analyzer 将于 2023 年第二季度获得 ISO 26262 认证 (TCL3)。还捆绑了一个 MISRA C 检查器。 - **vera++** :warning: — Vera++ 是一个用于验证、分析和转换 C++ 源代码的可编程工具。

Clojure

- [clj-kondo](https://github.com/borkdude/clj-kondo) — Clojure 代码的 linter,可以激发愉悦感。它会在您键入时通知您潜在的错误。

CoffeeScript

- **coffeelint** :warning: — 一个样式检查器,有助于保持 CoffeeScript 代码的整洁和一致。

ColdFusion

- [Fixinator](https://fixinator.app) :copyright: — 适用于 ColdFusion 或 CFML 代码的静态安全代码分析。旨在在 CI 管道中或从开发人员终端运行。

Crystal

- [ameba](https://crystal-ameba.github.io) — Crystal 的静态代码分析工具。 - [crystal](https://crystal-lang.org) — Crystal 编译器具有内置的 linting 功能。

Dart

- **Dart Code Metrics** :warning: — Dart 的附加 linter。报告代码度量,检查反模式,并为 Dart analyzer 提供附加规则。 - [effective_dart](https://pub.dev/packages/effective_dart) — 对应 Effective Dart 中指南的 Linter 规则 - **lint** :warning: — 一套针对 Dart 和 Flutter 项目的固执己见的、社区驱动的 lint 规则。类似 pedantic 但更严格 - **Linter for dart** :warning: — Dart 的样式 linter。

Delphi

- [DelphiLint](https://github.com/integrated-application-development/delphilint) — 一个 Delphi IDE 包,由 SonarDelphi 提供支持,提供即时代码分析和 linting。 - [Fix Insight](https://www.tmssoftware.com/site/fixinsight.asp) :copyright: — 用于静态代码分析的免费 IDE 插件。_Pro_ 版本包括用于自动化目的的命令行工具。 - [Pascal Analyzer](https://peganza.com/products_pal.html) :copyright: — 具有大量报告的静态代码分析工具。提供报告功能有限的免费 _Lite_ 版本。 - [Pascal Expert](https://peganza.com/products_pex.html) :copyright: — 用于代码分析的 IDE 插件。包括 Pascal Analyzer 报告功能的子集,适用于 Delphi 2007 及更高版本。 - [SonarDelphi](https://github.com/integrated-application-development/sonar-delphi) — 适用于 SonarQube 代码质量平台的 Delphi 静态分析器。

Dlang

- [D-scanner](https://github.com/dlang-community/D-Scanner) — D-Scanner 是一种用于分析 D 源代码的工具。

Elixir

- [credo](https://github.com/rrrene/credo) — 专注于代码一致性和教学的静态代码分析工具。 - [dialyxir](https://github.com/jeremyjh/dialyxir) — 简化在 Elixir 项目中使用 Dialyzer 的 Mix 任务。 - [sobelow](https://github.com/nccgroup/sobelow) — 针对 Phoenix Framework 的专注于安全的静态分析。

Elm

- **elm-analyse** :warning: — 一种允许您分析 Elm 代码、识别缺陷并应用最佳实践的工具。 - [elm-review](https://package.elm-lang.org/packages/jfmengels/elm-review/latest) — 分析整个 Elm 项目,专注于用 Elm 编写的可共享和自定义规则,这些规则增加了 Elm 编译器无法给您的保证。

Erlang

- [dialyzer](https://www.erlang.org/doc/man/dialyzer.html) — DIALYZER,一个用于 Erlang 程序的差异分析器。Dialyzer 是一个静态分析工具,用于识别软件差异,例如单个 Erlang 模块或整个(组)应用程序中的确切类型错误、由于编程错误而变为死代码或无法访问的代码,以及不必要的测试。 Dialyzer 从调试编译 BEAM 字节码或 Erlang 源代码开始分析。报告差异的文件和行号,并指示差异的内容。Dialyzer 基于成功类型的概念进行分析,该概念允许进行可靠的警告(无误报)。 - [elvis](https://github.com/inaka/elvis) — Erlang Style Reviewer。 - **Primitive Erlang Security Tool (PEST)** :warning: — 一种用于对 Erlang 源代码进行基本扫描并报告可能导致 Erlang 源代码不安全的函数调用的工具。

F#

- [fantomas](https://fsprojects.github.io/fantomas/) — F# 源代码格式化程序。 - [FSharpLint](https://github.com/fsprojects/FSharpLint) — F# 的 Lint 工具。 - [ionide-analyzers](https://ionide.io/ionide-analyzers/) — 一组使用 FSharp.Analyzers.SDK 构建的 F# 分析器。

Fortran

- [Fortitude](https://fortitude.readthedocs.io) — Fortran linter,灵感来自(并基于)Ruff,并基于社区最佳实践。支持最新的 Fortran (2023) 标准。 - [fprettify](https://pypi.python.org/pypi/fprettify) — 用 Python 编写的现代 Fortran 源代码自动格式化程序。 Fprettify 是一种在代码中提供一致的空白、缩进和分隔符对齐的工具,包括更改字母大小写和处理预处理程序指令的能力,同时保留修订历史记录并经过编辑器集成测试。 - **i-Code CNES for Fortran** :warning: — 一个用于 Fortran 77、Fortran 90 和 Shell 的开源静态代码分析工具。

Go

- [aligncheck](https://gitlab.com/opennota/check) — 查找打包效率低下的结构体。 - [bodyclose](https://github.com/timakin/bodyclose) — 检查 HTTP 响应主体是否已关闭。 - [deadcode](https://github.com/tsenart/deadcode) — 查找未使用的代码。 - **dingo-hunter** :warning: — 用于在 Go 中查找死锁的静态分析器。 - [dogsled](https://github.com/alexkohler/dogsled) — 查找具有太多空白标识符的赋值/声明。 - [dupl](https://github.com/mibk/dupl) — 报告潜在重复的代码。 - [errcheck](https://github.com/kisielk/errcheck) — 检查是否使用了错误返回值。 - **errwrap** :warning: — 使用新的 %w 动词指令包装并修复 Go 错误。该工具分析 fmt.Errorf() 调用,并报告包含与 Go v1.13 中引入的新 %w 动词指令不同的动词指令的调用。它还能够重写调用以使用新的 %w 包装动词指令。 - [flen](https://github.com/lafolle/flen) — 获取 Go 包中函数长度的信息。 - **Go Meta Linter** :warning: — 并发运行 Go lint 工具并规范其输出。对于新项目,请使用 `golangci-lint`。 - [go tool vet --shadow](https://golang.org/cmd/vet#hdr-Shadowed_variables) — 报告可能无意中被遮蔽的变量。 - [go vet](https://golang.org/cmd/vet) — 检查 Go 源代码并报告可疑之处。 - **go-consistent** :warning: — 帮助您使 Go 程序更加一致的分析器。 - [go-critic](https://github.com/go-critic/go-critic) — Go 源代码 linter,维护其他 linter 中当前未实现的检查。 - [go/ast](https://golang.org/pkg/go/ast) — 包 ast 声明了用于表示 Go 包语法树的类型。 - [goast](https://github.com/m-mizutani/goast) — 基于 Go AST(抽象语法树)并使用 Rego 的静态分析工具。 - **gochecknoglobals** :warning: — 检查不存在全局变量。 - [goconst](https://github.com/jgautheron/goconst) — 查找可以被常量替换的重复字符串。 - [gocyclo](https://github.com/fzipp/gocyclo) — 计算 Go 源代码中函数的圈复杂度。 - [gofmt -s](https://golang.org/cmd/gofmt) — 检查代码是否格式正确,并且无法进一步简化。 - [gofumpt](https://github.com/mvdan/gofumpt) — 强制执行比 `gofmt` 更严格的格式,同时保持向后兼容。也就是说,`gofumpt` 接受 `gofmt` 接受的格式的一个子集。 该工具是 Go 1.19 时 `gofmt` 的一个分支,需要 Go 1.18 或更高版本。它可用作替代品来格式化您的 Go 代码,并且在 gofumpt 之后运行 gofmt 应该不会产生任何更改。 `gofumpt` 永远不会添加与 `gofmt` 格式不一致的规则。所以我们扩展 `gofmt` 而不是与之竞争。 - [goimports](https://pkg.go.dev/golang.org/x/tools/cmd/goimports) — 检查缺失或未引用的包导入。 - [gokart](https://github.com/praetorian-inc/gokart) — Golang 安全分析,专注于最大限度地减少误报。它能够跟踪变量和函数参数的来源,以确定输入源是否安全。 - [GolangCI-Lint](https://golangci-lint.run) — `Go Meta Linter` 的替代品:GolangCI-Lint 是一个 linter 聚合器。 - [golint](https://github.com/golang/lint) — 打印 Go 源代码中的编码风格错误。 - [goreporter](https://github.com/360EntSecGroup-Skylar/goreporter) — 并发运行许多 linter 并将其输出规范化为报告。 - [goroutine-inspect](https://github.com/linuxerwang/goroutine-inspect) — 一个用于分析 Golang goroutine 转储的交互式工具。 - [gosec (gas)](https://securego.io) — 通过扫描 Go AST 来检查源代码中的安全问题。 - [gotype](https://pkg.go.dev/golang.org/x/tools/cmd/gotype) — 类似于 Go 编译器的语法和语义分析。 - [govulncheck](https://go.dev/blog/vuln) — Govulncheck 报告影响 Go 代码的已知漏洞。它使用源代码或二进制符号表的静态分析来将报告范围缩小到仅那些可能影响应用程序的漏洞。 默认情况下,govulncheck 向 https://vuln.go.dev 的 Go 漏洞数据库发出请求。对漏洞数据库的请求仅包含模块路径,而不包含代码或程序的其他属性。 - [ineffassign](https://github.com/gordonklaus/ineffassign) — 检测 Go 代码中的无效赋值。 - **interfacer** :warning: — 建议可以使用的更窄的接口。 - [lll](https://github.com/walle/lll) — 报告长行。 - **maligned** :warning: — 检测如果对其字段进行排序则会占用更少内存的结构体。 - [misspell](https://github.com/client9/misspell) — 查找常见拼写错误的英语单词。 - **nakedret** :warning: — 查找裸返回。 - [nargs](https://github.com/alexkohler/nargs) — 查找函数声明中未使用的参数。 - [OSV-Scanner](https://osv.dev/) — 用 Go 编写的漏洞扫描程序,使用 OSV.dev 提供的数据。由 Google 开发,用于跨多种语言和包管理器扫描依赖项中的已知漏洞。支持容器扫描、许可证扫描和引导式修复。使用锁文件、SBOM 和容器映像来识别安全问题。 - [prealloc](https://github.com/alexkohler/prealloc) — 查找可能被预分配的切片声明。 - [Reviewdog](https://github.com/haya14busa/reviewdog) — 一个用于在任何代码托管服务中发布来自任何 linter 的审查评论的工具。 - [revive](https://revive.run) — 快速、可配置、可扩展、灵活且美观的 Go linter。golint 的替代品。 - **safesql** :warning: — 用于 Golang 的静态分析工具,可防止 SQL 注入。 - **shisho** :warning: — 一个为开发人员和安全团队设计的轻量级静态代码分析器。它允许您使用类似于 sed 但用于代码的直观 DSL 来分析和转换源代码。 - [staticcheck](https://staticcheck.io) — 专注于发现错误、简化代码和提高性能的 Go 静态分析。 - [structcheck](https://gitlab.com/opennota/check) — 查找未使用的结构体字段。 - [structslop](https://github.com/orijtech/structslop) — Go 静态分析器,建议重新排列结构体字段以提供最大的空间/分配效率 - [test](https://pkg.go.dev/testing) — 显示 stdlib 测试模块中测试失败的位置。 - **unconvert** :warning: — 检测冗余的类型转换。 - [unparam](https://github.com/mvdan/unparam) — 查找未使用的函数参数。 - [varcheck](https://gitlab.com/opennota/check) — 查找未使用的全局变量和常量。 - [wsl](https://github.com/bombsimon/wsl) — 在正确位置强制执行空行。

Groovy

- [CodeNarc](https://codenarc.github.io/CodeNarc) — Groovy 源代码的静态分析工具,用于监视和强制执行许多编码标准和最佳实践。

Haskell

- **brittany** :warning: — Haskell 源代码格式化程序 - [HLint](https://github.com/ndmitchell/hlint) — HLint 是一个建议改进 Haskell 代码的工具。 - [Liquid Haskell](https://ucsd-progsys.github.io/liquidhaskell-blog/) — Liquid Haskell 是 Haskell 程序的细化类型检查器。 - [Stan](https://kowainik.github.io/projects/stan) — Stan 是一个用于分析 Haskell 项目并以有用的方式输出发现的漏洞并为检测到的问题提供可能的解决方案的命令行工具。 - [Weeder](https://github.com/ocharles/weeder) — 一种用于检测 Haskell 代码中死导出或包导入的工具。

Haxe

- [Haxe Checkstyle](https://haxecheckstyle.github.io/docs/haxe-checkstyle/home.html) — 一个静态分析工具,帮助开发人员编写符合编码标准的 Haxe 代码。

Java

- [Checker Framework](https://checkerframework.org) — Java 的可插拔类型检查。这不仅仅是一个错误查找器,而是一个提供正确性保证的验证工具。它带有 27 个预构建的类型系统,并允许用户定义自己的类型系统;手册列出了 30 多个用户贡献的类型系统。 - [checkstyle](https://checkstyle.org) — 检查 Java 源代码是否符合代码标准或一组验证规则(最佳实践)。 - [ck](https://github.com/mauricioaniche/ck) — 通过处理 Java 源文件来计算 Chidamber 和 Kemerer 面向对象度量。 - [ckjm](http://www.spinellis.gr/sw/ckjm) — 通过处理编译的 Java 文件的字节码来计算 Chidamber 和 Kemerer 面向对象度量。 - **CogniCrypt** :warning: — 检查 Java 源代码和字节代码中加密 API 的错误使用。 - [Dataflow Framework](https://github.com/typetools/checker-framework) — 一个用于 Java 的工业强度数据流框架。数据流框架用于 Checker Framework、Google 的 Error Prone、Uber 的 NullAway、Meta 的 Nullsafe 以及其他上下文中。它与 Checker Framework 一起分发。 - [DesigniteJava](http://www.designite-tools.com/designitejava) :copyright: — DesigniteJava 支持检测各种架构、设计和实现坏味道,以及计算各种代码质量度量。 - [Diffblue](https://www.diffblue.com/) :copyright: — Diffblue 是一家软件公司,为软件开发团队提供 AI 驱动的代码分析和测试解决方案。 其技术帮助开发人员自动化测试、发现错误并减少软件开发过程中的手动工作。该公司的主要产品 Diffblue Cover 使用 AI 生成和运行 Java 代码的单元测试,有助于发现错误并提高代码质量。 - [Doop](https://plast-lab.github.io/doop-pldi15-tutorial/) — Doop 是一个用于 Java/Android 程序静态分析的声明性框架,以指针分析算法为中心。Doop 提供了各种各样的分析,以及端到端运行分析所需的周围脚手架(事实生成、处理、统计等)。 - **ENRE-java** :warning: — ENRE(实体关系提取器)是一种用于从源代码中提取代码实体依赖项或关系的工具。ENRE-java 是基于 @Eclipse JDT/parser 的 Java 项目的实体关系提取器。 - [Error Prone](https://errorprone.info) — 将常见的 Java 错误作为编译时错误捕获。 - [fb-contrib](http://fb-contrib.sourceforge.net) — 一个带有附加错误检测器的 FindBugs 插件。 - [forbidden-apis](https://github.com/policeman-tools/forbidden-apis) — 检测并禁止调用特定方法/类/字段(例如在没有字符集的情况下读取文本流)。Maven/Gradle/Ant 兼容。 - [google-java-format](https://github.com/google/google-java-format) — 重新格式化 Java 源代码以符合 Google Java Style - **HuntBugs** :warning: — 基于 Procyon Compiler Tools 的字节码静态分析器工具,旨在取代 FindBugs。 - [IntelliJ IDEA](https://www.jetbrains.com/idea)copyright: — 捆绑了许多用于 Java 和 Kotlin 的检查,并包括重构、格式化等工具。 - [JArchitect](https://www.jarchitect.com) :copyright: — 测量、查询和可视化您的代码,避免意外问题、技术债务和复杂性。 - [JBMC](https://www.cprover.org/jbmc) — Java(字节码)的有界模型检查器,验证用户定义的断言、标准断言、多种覆盖率度量分析。 - [JLiSA](https://github.com/lisa-analyzer/jlisa) — 一个基于抽象解释的 Java 静态分析器,构建在 [LiSA](https://github.com/lisa-analyzer/lisa) 框架之上。 - [Mariana Trench](https://mariana-tren.ch/) — 我们专注于 Android 和 Java 应用程序安全的静态分析工具。Mariana Trench 分析 Dalvik 字节码,旨在快速运行在大型代码库(数千万行代码)上。它可以在代码变更时发现漏洞,甚至在其进入您的代码库之前。 - [NullAway](https://github.com/uber/NullAway) — 具有低构建开销的基于类型的空指针检查器;一个 [Error Prone](http://errorprone.info/) 插件。 - **OWASP Dependency Check** :warning: — 检查依赖项是否存在已知的、公开披露的漏洞。 - [qulice](https://www.qulice.com) — 结合了几个(预配置的)静态分析工具(checkstyle、PMD、Findbugs 等)。 - [RefactorFirst](https://github.com/jimbethancourt/RefactorFirst) — 识别并确定 Java 代码库中应首先重构的上帝类和高耦合类的优先级。 - [Soot](https://soot-oss.github.io/soot) — 一个用于分析和转换 Java 和 Android 应用程序的框架。 - [Spoon](https://spoon.gforge.inria.fr) — Spoon 是一个元编程库,用于分析和转换 Java 源代码(包括 Java 9、10、11、12、13、14)。它解析源文件以构建设计良好的 AST,并具有强大的分析和转换 API。可以集成在 Maven 和 Gradle 中。 - [SpotBugs](https://spotbugs.github.io) — SpotBugs 是 FindBugs 的继任者。一种用于在 Java 代码中查找错误的静态分析工具。 - **steady** :warning: — 使用静态分析和测试来确定代码上下文和用法,从而更准确地分析 Java 应用程序中具有已知漏洞的开源依赖项。 - [Violations Lib](https://github.com/tomasbjerre/violations-lib) — 用于解析静态代码分析报告文件的 Java 库。被许多 Jenkins、Maven 和 Gradle 插件使用。

JavaScript

- **aether** :warning: — 在 node 或浏览器中 lint、分析、规范化、转换、沙盒化、运行、单步执行和可视化用户 JavaScript。 - [Closure Compiler](https://developers.google.com/closure/compiler) — 一种编译器工具,用于提高效率、减小大小并提供 JavaScript 文件中的代码警告。 - **ClosureLinter** :warning: — 确保项目的所有 JavaScript 代码都遵循 Google JavaScript Style Guide 中的指南。它还可以自动修复许多常见错误。 - **complexity-report** :warning: — JavaScript 项目的软件复杂度分析。 - [DeepScan](https://deepscan.io) :copyright: — 一种针对 JavaScript 的分析器,针对运行时错误和质量问题,而不是编码约定。 - **es6-plato** :warning: — 可视化 JavaScript (ES6) 源复杂度。 - [escomplex](https://github.com/jared-stilwell/escomplex) — JavaScript 系列抽象语法树的软件复杂度分析。 - **Esprima** :warning: — 用于多用途分析的 ECMAScript 解析基础设施。 - [flow](https://flow.org) — JavaScript 的静态类型检查器。 - **hegel** :warning: — 一种静态类型检查器,用于偏重于类型推断和强类型系统的 JavaScript。 - [jshint](https://jshint.com/about) [:information_source:]() — 检测 JavaScript 代码中的错误和潜在问题,并强制执行团队的编码约定。 - [JSLint](https://github.com/douglascrockford/JSLint) [:information_source:]() — JavaScript 代码质量工具。 - **JSPrime** :warning: — 静态安全分析工具。 - **NodeJSScan** :warning: — 基于 libsast 和 semgrep 构建的 Node.js 应用程序静态安全代码扫描器,构建在 njsscan cli 工具之上。它具有一个 UI,其中包含有关应用程序安全状态的各种仪表板。 - **plato** :warning: — 可视化 JavaScript 源复杂度。 - [Polymer-analyzer](https://github.com/Polymer/tools/tree/master/packages/analyzer) — Web Components 的静态分析框架。 - [retire.js](https://retirejs.github.io/retire.js) — 检测使用具有已知漏洞的 JavaScript 库的扫描器。 - **RSLint** :warning: — 一个用 Rust 编写的(WIP)JavaScript linter,旨在尽可能快、可定制且易于使用。 - [standard](http://standardjs.com) — 一个用于检查 Javascript Styleguide 问题的 npm 模块。 - [tern](https://ternjs.net) — 一个 JavaScript 代码分析器,用于深入的、跨编辑器语言支持。 - **TypL** :warning: — 使用 TypL,您只需编写完全标准的 JS,该工具即可通过强大的推断找出您的类型。 - [xo](https://github.com/xojs/xo) — 固执己见但可配置的 ESLint 包装器,包含许多好东西。强制执行严格且可读的代码。 - **yardstick** :warning: — Javascript 代码度量。

Julia

- [JET](https://github.com/aviatesk/JET.jl) — 用于检测错误和类型不稳定性的静态类型推断系统。 - [StaticLint](https://github.com/julia-vscode/StaticLint.jl) — Julia 的静态代码分析

Kotlin

- [detekt](https://detekt.github.io/detekt) — Kotlin 代码的静态代码分析。 - **diktat** :warning: — Kotlin 的严格编码标准和 linter,用于检测并自动修复代码坏味道。 - [ktfmt](https://facebook.github.io/ktfmt/) — 一个重新格式化 Kotlin 源代码以符合 Kotlin 代码约定通用社区标准的程序。 可以从插件存储库获得 ktfmt IntelliJ 插件。要安装它,请转到 IDE 的设置并选择 Plugins 类别。单击 Marketplace 选项卡,搜索 ktfmt 插件,然后单击 Install 按钮。 - [ktlint](https://ktlint.github.io) — 一个带有内置格式化程序的反对争论(anti-bikeshedding)的 Kotlin linter。

Lua

- [luacheck](https://github.com/lunarmodules/luacheck) — 用于 Lua 代码的 lint 和静态分析工具。 - [lualint](https://github.com/philips/lualint) — lualint 对 Lua 源代码中的全局变量使用执行基于 luac 的静态分析。 - **Luanalysis** :warning: — 一个用于静态类型 Lua 开发的 IDE。

MATLAB

- **MISS_HIT** :warning: — MISS_HIT 是一个用于 MATLAB、Simulink 和 Octave 的免费、开源代码质量工具集。它包括 MH Style(样式检查器和格式化程序)、MH Metrics(复杂度度量)、MH Lint(静态分析)、MH Trace(需求可追溯性)和 MH Copyright(版权管理)。旨在独立工作,无需安装 MATLAB/Octave。 - [mlint](https://www.mathworks.com/help/matlab/ref/mlint.html) :copyright: — 检查 MATLAB 代码文件是否存在可能的问题。

Nim

- [DrNim](https://nim-lang.org/docs/drnim.html) — DrNim 将 Nim 前端与 Z3 证明引擎结合在一起,以允许验证/验证用 Nim 编写的软件。 - **nimfmt** :warning: — Nim 代码格式化程序 / linter / 样式检查器

Ocaml

- [Sys](https://github.com/PLSysSec/sys) — 一种用于查找(浏览器)代码错误的静态/符号工具。它使用 LLVM AST 来查找未初始化内存访问等错误。 - [VeriFast](https://github.com/verifast/verifast) — 一种用于对带有用分离逻辑编写的前置条件和后置条件的单线程和多线程 C 和 Java 程序的正确性属性进行模块化形式验证的工具。为了表达丰富的规范,程序员可以定义归纳数据类型、这些数据类型上的原始递归纯函数以及抽象分离逻辑谓词。

PHP

- [CakeFuzzer](https://zigrin.com/tools/cake-fuzzer/) — 用于基于 CakePHP 的 Web 应用程序的 Web 应用程序安全测试工具。CakeFuzzer 采用一组预定义的攻击,这些攻击在执行前会被随机修改。利用其对 Cake PHP 框架的深刻理解,Cake Fuzzer 会攻击所有潜在的应用程序入口点。 - [churn-php](https://github.com/bmitch/churn-php) — 帮助发现重构的良好候选者。 - [composer-dependency-analyser](https://github.com/shipmonk-rnd/composer-dependency-analyser) — 快速检测 composer 依赖项问题。 * 💪 强大:检测未使用的、遮蔽的和错位的 composer 依赖项 * ⚡ 高性能:2 秒内扫描 15,000 个文件! * ⚙️ 可配置:通过 PHP 配置进行细粒度忽略 * 🕸️ 轻量级:没有 composer 依赖项 * 🍰 易于使用:首次尝试无需配置 * ✨ 兼容:PHP >= 7.2 - [dephpend](https://github.com/mihaeu/dephpend) — 依赖分析工具。 - [deprecation-detector](https://github.com/sensiolabs-de/deprecation-detector) — 查找已弃用的 代码的使用。 - [deptrac](https://github.com/sensiolabs-de/deptrac) — 强制执行软件层之间的依赖规则。 - [DesignPatternDetector](https://github.com/Halleck45/DesignPatternDetector) — 在 PHP 代码中检测设计模式。 - [EasyCodingStandard](https://www.tomasvotruba.com/blog/2017/05/03/combine-power-of-php-code-sniffer-and-php-cs-fixer-in-3-lines) — 结合 [PHP_CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) 和 [PHP-CS-Fixer](https://github.com/FriendsOfPHP/PHP-CS-Fixer)。 - **Enlightn** :warning: — 一个用于 Laravel 应用程序的静态和动态分析工具,提供建议以提高 Laravel 应用程序的性能、安全性和代码可靠性。包含 120 项自动检查。 - [exakat](https://www.exakat.io) — 一个用于 PHP 的自动化代码审查引擎。 - [GrumPHP](https://github.com/phpro/grumphp) — 在每次提交时检查代码。 - [larastan](https://github.com/larastan/larastan) — 为 Laravel 添加静态分析,提高开发人员的工作效率和代码质量。它是 PHPStan 的包装器。 - [mago](https://mago.carthage.software) — Mago 是一个完整的 PHP 工具链,用 Rust 编写,从头开始设计以实现最大性能。 - ✨ 一个快速的格式化程序,根据 PER-CS 自动格式化您的代码,永远结束样式争论。 - 🔎 一个智能 linter,可以在样式问题、不一致和代码坏味道成为问题之前捕捉它们。 - 🔬 一个强大的静态分析器,无需运行代码即可在代码中发现类型错误和逻辑错误。 - 🛡️ 一个强大的架构守卫,强制执行依赖规则和结构约定。 - **Mondrian** :warning: — 一组使用图论的静态分析和重构工具。 - [parallel-lint](https://github.com/php-parallel-lint/PHP-Parallel-Lint) — 该工具以比串行检查更快的速度检查 PHP 文件的语法,并且输出更美观。 - [Parse](https://github.com/psecio/parse) — 静态安全扫描器。 - [pdepend](https://pdepend.org) — 计算 PHP 代码的软件度量,例如圈复杂度。 - [phan](https://github.com/phan/phan/wiki) — 来自 etsy 的现代静态分析器。 - [PHP Architecture Tester](https://github.com/carlosas/phpat) — 易于使用的 PHP 架构测试工具。 - [PHP Assumptions](https://github.com/rskuipers/php-assumptions) — 检查弱假设。 - [PHP Coding Standards Fixer](https://cs.symfony.com) — 根据标准(如 PSR-1、PSR-2 和 Symfony 标准)修复代码。 - [PHP Insights](https://github.com/nunomaduro/phpinsights) — 从控制台进行即时 PHP 质量检查。代码质量和编码风格的分析,以及代码架构及其复杂性的概述。 - [Php Inspections (EA Extended)](https://plugins.jetbrains.com/plugin/7622-php-inspections-ea-extended-) — PHP 的静态代码分析器。 - [PHP Refactoring Browser](https://qafoolabs.github.io/php-refactoring-browser) — 重构助手。 - [PHP Semantic Versioning Checker](https://github.com/tomzx/php-semver-checker) — 根据语义化版本控制建议下一个版本。 - [PHP-Parser](https://github.com/nikic/PHP-Parser) — 用 PHP 编写的 PHP 解析器。 - [php-speller](https://github.com/mekras/php-speller) — PHP 拼写检查库。 - **PHP-Token-Reflection** :warning: — 模仿 PHP 内部反射的库。 - **php7cc** :warning: — PHP 7 兼容性检查器。 -php7mar** :warning: — 协助开发人员将其代码快速移植到 PHP 7。 - **PHP_CodeSniffer** :warning: — 检测违反一组定义的编码标准。 - [PHPArkitect](https://github.com/phparkitect/arkitect) — PHPArkitect 帮助您保持 PHP 代码库的连贯性和稳固性,通过允许您在工作流中添加一些架构约束检查。您可以用简单且可读的 PHP 代码表达您想要强制执行的约束。 - **phpca** :warning: — 查找非内置扩展的使用。 - **phpcpd** :warning: — PHP 代码的复制/粘贴检测器。 - **phpdcd** :warning: — PHP 代码的死代码检测器 (DCD)。 - **PhpDependencyAnalysis** :warning: — 为项目构建依赖关系图。 - **PhpDeprecationDetector** :warning: — PHP 代码分析器,用于在较新的解释器版本中搜索已弃用功能的问题。它查找已删除的对象(函数、变量、常量和 ini 指令)、已弃用的函数功能,以及使用禁止的名称或技巧(例如,较新版本中的保留标识符)。 - **phpdoc-to-typehint** :warning: — 使用 PHPDoc 注释为现有的 PHP 项目添加标量类型提示和返回类型。 - [phpDocumentor](https://www.phpdoc.org) — 分析 PHP 源代码以生成文档。 - **phploc** :warning: — 一种用于快速测量 PHP 项目大小并分析其结构的工具。 - [PHPMD](https://phpmd.org) — 在代码中发现可能的错误。 - [PhpMetrics](http://www.phpmetrics.org) — 计算和可视化各种代码质量度量。 - [phpmnd](https://github.com/povils/phpmnd) — 帮助检测魔术数字。 - [PHPQA](https://edgedesigncz.github.io/phpqa) — 一个用于运行 QA 工具(phploc、phpcpd、phpcs、pdepend、phpmd、phpmetrics)的工具。 - [phpqa - jakzal](https://github.com/jakzal/phpqa) — 一个容器中的许多 PHP 静态分析工具。 - [phpqa - jmolivas](https://github.com/jmolivas/phpqa) — PHPQA 全合一分析器 CLI 工具。 - **phpsa** :warning: — PHP 静态分析工具。 - [PHPStan](https://phpstan.org) — PHP 静态分析工具 - 无需运行代码即可发现其中的错误! - [Progpilot](https://github.com/designsecurity/progpilot) — 一种用于安全目的的静态分析工具。 - [Psalm](https://psalm.dev) — 用于在 PHP 应用程序中发现类型错误的静态分析工具。 - **Qafoo Quality Analyzer** :warning: — 可视化度量和源代码。 - [rector](https://getrector.org) — 任何 PHP 5.3+ 代码的即时升级和自动重构。它将您的代码升级到 PHP 7.4、8.0 及更高版本。Rector 承诺误报率低,因为它查找定义狭窄的 AST(抽象语法树)模式。主要用例是解决遗留代码中的技术债务和删除死代码。Rector 为 Symfony、Doctrine、PHPUnit 等提供了一组特殊规则。 - [Reflection](https://github.com/phpDocumentor/Reflection) — 反射库,用于对 PHP 项目进行静态分析 - [Symfony Insight](https://insight.symfony.com/) :copyright: — 检测安全风险,发现错误并为 PHP 项目提供可操作的度量。 - [Tuli](https://github.com/ircmaxell/Tuli) — 静态分析引擎。 - [twig-lint](https://github.com/asm89/twig-lint) — twig-lint 是用于 twig 文件的 lint 工具。 - [WAP](https://securityonline.info/owasp-wap-web-application-protection-project) — 用于检测和更正 PHP(4.0 或更高版本)Web 应用程序中的输入验证漏洞并通过结合静态分析和数据挖掘来预测误报的工具。

PL/SQL

- [ZPA](https://zpa.felipebz.com) — 一个用于 PL/SQL 和 Oracle SQL 代码的开源解析器和代码分析器。

Perl

- [Perl::Analyzer](https://technix.github.io/Perl-Analyzer/) — Perl-Analyzer 是一组程序和模块,允许用户通过提供有关命名空间及其关系、依赖项、继承以及在包中实现、继承和重新定义的方法以及通过 SUPER 调用父包方法的信息来分析和可视化 Perl 代码库。 - [Perl::Critic](https://metacpan.org/pod/Perl::Critic) — 根据 best-practices(最佳实践)批评 Perl 源代码。 - [perltidy](https://perltidy.sourceforge.net/) — Perltidy 是一个 Perl 脚本,它缩进并重新格式化 Perl 脚本,使其更易于阅读。 格式可以通过命令行参数控制。默认参数设置大致遵循 Perl Style Guide 中的建议。 除了重新格式化脚本之外,Perltidy 还可以非常有助于跟踪缺少或多余的大括号、圆括号和方括号的错误,因为它非常擅长定位错误。 - [zarn](https://github.com/htrgouvea/zarn) — 一个用于现代 Perl Apps 的轻量级静态安全分析工具

Python

- [autoflake](https://github.com/PyCQA/autoflake) — Autoflake 从 Python 代码中删除未使用的导入和未使用的变量。 - [autopep8](https://pypi.org/project/autopep8/) — 一种自动格式化 Python 代码以符合 PEP 8 样式指南的工具。 它使用 pycodestyle 实用程序来确定代码的哪些部分需要格式化。 - [bandit](https://bandit.readthedocs.io/en/latest) — 一种用于在 Python 代码中发现常见安全问题的工具。 - [bellybutton](https://github.com/hchasestevens/bellybutton) — 支持自定义项目特定规则的 lint 引擎。 - [Black](https://black.readthedocs.io/en/stable) — 不妥协的 Python 代码格式化程序。 - [Bowler](https://pybowler.io/) — 现代 Python 的安全代码重构。Bowler 是一种在语法树级别操作 Python 的重构工具。它启用安全、大规模的代码修改,同时保证生成的代码能够编译和运行。它提供简单的命令行界面和 Python 中的流畅 API,用于生成代码中的复杂代码修改。 - **ciocheck** :warning: — Linter、格式化程序和测试套件助手。作为 linter,它是 `pep8`、`pydocstyle`、`flake8` 和 `pylint` 的包装器。 - [Code Pathfinder](https://codepathfinder.dev) — 一个开源安全套件,旨在将结构代码分析与 AI 驱动的漏洞检测相结合。专为高级结构搜索而构建,以获得洞察力、发现代码中的漏洞。 - **cohesion** :warning: — 一种用于测量 Python 类内聚性的工具。 - [deal](https://deal.readthedocs.io/) — Python 的按合同设计。编写无错误的代码。通过在代码中添加一些装饰器,您可以免费获得测试、静态分析、形式验证等等。 - [Dlint](https://github.com/dlint-py/dlint) — 一种确保 Python 代码安全的工具。 - [Dodgy](https://github.com/landscapeio/dodgy) — Dodgy 是一个非常基本的工具,可用于针对您的代码库运行以查找“可疑”的值。它是一系列简单的正则表达式,旨在检测诸如意外的 SCM diff checkins,或将密码或密钥硬编码到文件中之类的事情。 - **ENRE-py** :warning: — ENRE(实体关系提取器)是一种用于从源代码中提取代码实体依赖项或关系的工具。ENRE-py 是基于标准库的 Python Language Services 的 Python 实体关系提取器。 - [fixit](https://pypi.org/project/fixit) — 一个用于为源代码创建 lint 规则和相应的自动修复的框架。 - [flake8](https://github.com/PyCQA/flake8) — `pyflakes`、`pycodestyle` 和 `mccabe` 的包装器。 - [flakeheaven](https://pypi.org/project/flakeheaven/) — flakeheaven 是一个围绕 flake8 构建的 python linter,用于实现可继承和复杂的 toml 配置。 - [Griffe](https://mkdocstrings.github.io/griffe/) — 整个 Python 程序的签名。提取项目的结构、框架、骨架,以生成 API 文档或发现 API 中的重大更改。 - **InspectorTiger** :warning: — IT,Inspector Tiger,是一个现代化的 python 代码审查工具/框架。它带有一组预定义的处理程序,警告您有关改进和可能的错误。除了这些处理程序之外,您还可以编写自己的处理程序或使用社区处理程序。 - [jedi](https://jedi.readthedocs.io/en/latest) — Python 的自动完成/静态分析库。 - [linty fresh](https://github.com/lyft/linty_fresh) — 解析 lint 错误并将其作为对 pull request 的评论报告给 Github。 - [mbake](https://pypi.org/project/mbake/) — mbake 是一个 Makefile 格式化程序和 linter。这花了 50 年! - **mccabe** :warning: — 检查 McCabe 复杂度。 - **multilint** :warning: — `flake8`、`isort` 和 `modernize` 的包装器。 - [mypy](http://www.mypy-lang.org) — 一个静态类型检查器,旨在结合 duck typing 和 static typing 的好处,经常与 [MonkeyType](https://github.com/Instagram/MonkeyType) 一起使用。 - [pip-audit](https://github.com/pypa/pip-audit) — 用于扫描 Python 包中已知漏洞的工具。由 Python Packaging Authority (PyPA) 开发,并得到 Trail of Bits 和 Google 的支持。扫描 Python 环境和需求文件以识别易受攻击的包并建议修复方法。支持 GitHub Actions、pre-commit hooks 和多种漏洞服务集成。 - [prospector](https://github.com/PyCQA/prospector) — `pylint`、`pep8`、`mccabe` 和其他工具的包装器。 - **py-find-injection** :warning: — 在 Python 代码中查找 SQL 注入漏洞。 - [pyanalyze](https://pyanalyze.readthedocs.io/en/latest/) — 一种以编程方式检测 Python 代码中常见错误的工具,例如对未定义变量和类型错误的引用。它可以扩展以添加附加规则并执行特定于特定函数的检查。 - [pycodestyle](https://pycodestyle.pycqa.org/en/latest) — (前身为 `pep8`)根据 PEP 8 中的一些样式约定检查 Python 代码。 - **pydocstyle** :warning: — 检查是否符合 Python 文档字符串约定。 - [pyflakes](https://pypi.org/project/pyflakes) — 检查 Python 源文件中的错误。 - [pylint](http://pylint.pycqa.org/en/latest) — 查找编程错误,有助于强制执行编码标准并嗅探某些代码坏味道。它还包括 `pyreverse`(一个 UML 图生成器)和 `symilar`(一个相似性检查器)。 - [pylyzers](https://mtshiba.github.io/pylyzer/) — 用 Rust 编写的 Python 静态代码分析器/语言服务器,专注于类型检查和可读输出。 - [Pyra](https://github.com/spangea/Pyra) — Pyra 是一个用于用 Python 编写的应用程序的高级 linter 静态分析器,作为 [Lyra](https://github.com/caterinaurban/Lyra) 的扩展,帮助开发人员识别其用 Python 编写的应用程序中的潜在问题。 - **pyre-check** :warning: — 一个用于大型 Python 代码库的快速、可扩展的类型检查器。Pyre-check 已被其下一代版本 Pyrefly 取代。 - [pyrefly](https://pyrefly.org/) — 一个快速、增量的 Python 类型检查器和语言服务器,提供代码导航、语义高亮和代码完成等 IDE 功能。 - [pyright](https://github.com/Microsoft/pyright) — Python 的静态类型检查器,旨在解决 mypy 等现有工具中的空白。 - [pyroma](https://github.com/regebro/pyroma) — 评估 Python 项目符合 Python 打包生态系统最佳实践的程度,并列出可以改进的问题。 - [Pysa](https://pyre-check.org/docs/pysa-basics.html) — 一个基于 Facebook 的 pyre-check 的工具,用于识别 Python 代码中通过污点分析发现的潜在安全问题。 - **PyT - Python Taint** :warning: — 一种用于检测 Python Web 应用程序中安全漏洞的静态分析工具。 - [pytype](https://google.github.io/pytype) — Python 代码的静态类型分析器。 - [pyupgrade](https://pypi.org/project/pyupgrade-docs/) — 一种用于自动升级语言较新版本语法的工具(和 pre-commit hook)。 - **QuantifiedCode** :warning: — 自动化代码审查和修复。它帮助您跟踪软件项目中的问题和度量,并且可以轻松扩展以支持新类型的分析。 - **radon** :warning: — 一种从源代码计算各种度量的 Python 工具。 - [refurb](https://github.com/dosisod/refurb) — 一个用于翻新和现代化 Python 代码库的工具。Refurb 深受 Rust 内置 linter clippy 的启发。 - [ruff](https://astral.sh/ruff) — 快速的 Python linter,用 Rust 编写。比现有的 linter 快 10-100 倍。 Python 3.10。支持文件监视器。 - [Safety](https://safetycli.com/) — Python 依赖漏洞扫描程序,旨在通过检测具有已知漏洞的包来增强软件供应链安全性。根据已知安全漏洞数据库检查 Python 依赖项并提供详细报告。支持 CI/CD 集成和多种输出格式。 - [ty](https://docs.astral.sh/ty/) — 一个用 Rust 编写的极快的 Python 类型检查器。 - [unimport](https://unimport.hakancelik.dev) — 用于查找和删除未使用的导入语句的 linter、格式化程序。 - [vulture](https://github.com/jendrikseipp/vulture) — 在 Python 代码中查找未使用的类、函数和变量。 - [wemake-python-styleguide](https://wemake-python-styleguide.rtfd.io/) — 有史以来最严格、最固执己见的 python linter。 - [wily](https://github.com/tonybaloney/wily) — 一种用于存档、探索和绘制 Python 源代码复杂度图的命令行工具。 - **xenon** :warning: — 使用 [`radon`](https://github.com/rubik/radon) 监控代码复杂度。 - **yapf** :warning: — Google 创建的 Python 文件格式化程序 YAPF 遵循一种独特的方法论,该方法论起源于 Daniel Jasper 创建的 'clang-format' 工具。本质上,该程序将代码重新格式化为最合适的格式,该格式遵守样式指南,即使原始代码已经遵循了样式指南。这个概念类似于 Go 编程语言的 'gofmt' 工具,该工具旨在通过在每次更改时让整个项目的代码库通过 YAPF,从而结束有关格式的争论,从而在整个项目中保持一致的样式,并消除在每次代码审查中争论样式的需要。

R

- [CodeDepends](https://github.com/duncantl/CodeDepends) — R 的静态代码分析。 - [cyclocomp](https://github.com/MangoTheCat/cyclocomp) — 量化 R 函数/表达式的圈复杂度。 - [flowR](https://github.com/flowr-analysis/flowr) — [R](https://www.r-project.org/) 编程语言的 [程序切片器](https://github.com/flowr-analysis/flowr/wiki/Terminology#program-slice)和 [数据流分析器](https://en.wikipedia.org/wiki/Data-flow_analysis)。其切片器允许您将复杂的程序仅缩减为与特定任务相关的部分(例如,生成单个或一组绘图、显著性测试等)。数据流分析为您提供有关 R 代码语义的详细视图,这可以极大地改进其他分析。要使用 _flowR_,请查看 [Visual Studio Code 扩展](https://marketplace.visualstudio.com/items?itemName=code-inspect.vscode-flowr)、[RStudio Addin](https://github.com/flowr-analysis/rstudio-addin-flowr)、[Docker 映像](https://hub.docker.com/r/eagleoutice/flowr)或 [R 包](https://github.com/flowr-analysis/flowr-r-adapter)。 - [goodpractice](https://docs.ropensci.org/goodpractice/) — 分析 R 包的源代码并提供最佳实践建议。 - [lintr](https://github.com/jimhester/lintr) — R 的静态代码分析。 - [R Language Server](https://github.com/REditorSupport/languageserver/) — 为 R 提供代码完成、重构、折叠、诊断(使用 lintr)等。 - [rco](https://jcrodriguez1989.github.io/rco/) — R 代码的性能优化器(带 GUI)。 - [styler](https://styler.r-lib.org) — R 源代码文件的格式化和 R 代码的漂亮打印。

Rego

- [Regal](https://github.com/styrainc/regal) — Regal 是策略语言 Rego 的 linter。Regal 旨在捕捉策略代码中的错误和错误,同时帮助人们学习该语言、最佳实践和惯用构造。

Ruby

- [Active Record Doctor](https://github.com/gregnavis/active_record_doctor) — 在问题进入生产环境之前识别数据库问题。 - [brakeman](https://brakemanscanner.org) — 一个用于 Ruby on Rails 应用程序的静态分析安全漏洞扫描器。 - [Bullet](https://github.com/flyerhzm/bullet) — 帮助消除 N+1 查询和未使用的预加载。 - [bundler-audit](https://github.com/rubysec/bundler-audit) — 审计 Gemfile.lock 中在 [Ruby Advisory Database](https://github.com/rubysec/ruby-advisory-db) 中报告的安全漏洞的 gem。 - **cane** :warning: — 作为构建的一部分进行的代码质量阈值检查。 - **Churn** :warning: — 一个为给定 checkin 提供项目的 churn 文件、类和方法的项目。随着时间的推移,该工具会累计 churn 的历史记录,以提供文件、类或方法在项目生命周期中更改的次数。 - [DatabaseConsistency](https://github.com/djezzzl/database_consistency) — 该工具用于避免由于数据库架构和应用程序模型之间的不一致和低效率而导致的各种问题。 - [dawnscanner](https://github.com/thesp0nge/dawnscanner) — 一个用于 ruby 编写的 Web 应用程序的静态分析安全扫描器。它支持 Sinatra、Padrino 和 Ruby on Rails 框架。 - [ERB Lint](https://github.com/Shopify/erb-lint) — 检查您的 ERB 或 HTML 文件 - [ERB::Formatter](https://github.com/nebulab/erb-formatter) — 快速准确地格式化 ERB 文件。 - [Fasterer](https://github.com/DamirSvrtan/fasterer) — 常见的 Ruby 惯用语检查器。 - [flay](https://ruby.sadi.st/Flay.html) — Flay 分析代码的结构相似性。 - [flog](https://ruby.sadi.st/Flog.html) — Flog 以易于阅读的痛苦报告报告最受折磨的代码。分数越高,代码的痛苦程度越高。 - [Fukuzatsu](https://github.com/CoralineAda/fukuzatsu) — 一种用于测量 Ruby 类文件中代码复杂度的工具。其分析基于圈复杂度算法生成分数,没有添加任何“意见”。 - [htmlbeautifier](https://github.com/threedaymonk/htmlbeautifier) — 一个 HTML 的规范化器/美化程序,也理解嵌入的 Ruby。非常适合整理 Rails 模板。 - **laser** :warning: — Ruby 代码的静态分析和样式 linter。 - **MetricFu** :warning: — MetricFu 是一组提供报告的工具,这些报告显示您代码的哪些部分可能需要额外的工作。 - [pelusa](https://github.com/codegram/pelusa) — � - [cargo-deny](https://embarkstudios.github.io/cargo-deny) — 一个用于检查依赖项的 cargo 插件。它可以用作命令行工具、Rust crate 或 CI 中的 GitHub Action。它检查有效的许可证信息、重复的 crate、安全漏洞等。 - [cargo-expand](https://github.com/dtolnay/cargo-expand) — Cargo 子命令,用于显示应用于当前 crate 的宏展开和 `#[derive]` 展开的结果。这是一个对更冗长的编译器命令的封装。 - [cargo-geiger](https://github.com/geiger-rs/cargo-geiger) — 一个用于分析不安全 Rust 代码使用情况的 cargo 插件,提供统计输出以协助安全审计。 - **cargo-inspect** :warning: — 检查去掉语法糖后的 Rust 代码,以查看编译器在幕后做了什么。 - [cargo-semver-checks](https://crates.io/crates/cargo-semver-checks) — 扫描您的 Rust crate 版本是否存在 semver 违规。可以直接通过 CLI 使用,也可以作为 CI 中的 GitHub Action,或通过像 `release-plz` 这样的发布管理器使用。它在 crates.io 上 [超过六分之一的下载量前 1000 的 crate](https://predr.ag/blog/semver-violations-are-common-better-tooling-is-the-answer/) 中发现了 semver 违规。 - [cargo-show-asm](https://github.com/pacak/cargo-show-asm) — cargo 子命令,显示为 Rust 代码生成的汇编、LLVM-IR 和 MIR。 - [cargo-spellcheck](https://github.com/drahnr/cargo-spellcheck) — 使用 hunspell(就绪)和 languagetool(预览)检查您所有文档中的拼写和语法错误。 - **cargo-unused-features** :warning: — 查找可能未使用的已启用的 feature 标志并修剪它们。您可以从 json 生成一个简单的 HTML 报告,以便更轻松地检查结果。 它会移除依赖项的一个 feature,然后编译项目以查看是否仍然能编译。如果能,则该 feature 标志可能会被移除,但这可能是误报。 - [clippy](https://rust-lang.github.io/rust-clippy) — 一个代码 linter,用于捕获常见错误并改进您的 Rust 代码。 - [diff.rs](https://diff.rs) — Web 应用程序 (WASM),用于渲染 Rust crate 版本之间的差异。 - [dylint](https://www.trailofbits.com/post/write-rust-lints-without-forking-clippy) — 一种用于从动态库运行 Rust lints 的工具。Dylint 使开发人员易于维护自己的个人 lint 集合。 - **electrolysis** :warning: — 一种通过将 Rust 程序转译为 Lean 定理证明器中的定义来形式化验证 Rust 程序的工具。 - **herbie** :warning: — 当使用数值不稳定的浮点表达式时,向您的 crate 添加警告或错误。 - [kani](https://github.com/model-checking/kani) — Kani Rust 验证器是一个针对 Rust 的位精确模型检查器。 Kani 对于验证 Rust 中的不安全代码块特别有用, 在这些代码块中,“不安全超能力”未经编译器检查。 Kani 验证: * 内存安全(例如,空指针解引用) * 用户指定的断言(即,`assert!(...)`) * 不存在 panic(例如,对 None 值的 `unwrap()`) * 不存在某些类型的意外行为(例如,算术溢出) - **linter-rust** :warning: — 使用 rustc 和 cargo 在 Atom 中 Lint 您的 Rust 文件。 - [lockbud](https://github.com/BurtonQin/lockbud) — 静态检测 Rust 死锁错误。它目前检测两种常见的死锁错误:双重锁和冲突顺序的锁。它将以 JSON 格式打印错误,并提供源代码位置和对每个错误的解释。 - **MIRAI** :warning: — 一个在 Rust 中级中间表示语言上运行的抽象解释器,并根据污点分析提供警告。 - **prae** :warning: — 提供一个方便的宏,允许您生成类型包装器,承诺始终维护您指定的任意不变量。 - **Prusti** :warning: — 基于 Viper 验证基础设施的 Rust 静态验证器。默认情况下,Prusti 通过证明诸如 `unreachable!()` 和 `panic!()` 之类的语句是不可达的来验证不存在 panic。 - [Rudra](https://github.com/sslab-gatech/Rudra) — Rust 内存安全与未定义行为检测。它能够分析单个 Rust 包以及 crates.io 上的所有包。 - **Rust Language Server** :warning: — 支持“转到定义”、符号搜索、重新格式化和代码完成等功能,并启用重命名和重构。 - [rust-analyzer](https://rust-analyzer.github.io) — 支持“转到定义”、类型推断、符号搜索、重新格式化和代码完成等功能,并启用重命名和重构。 - [rust-audit](https://cssstats.com) — 审计 Rust 二进制文件中是否存在已知错误或安全漏洞。其工作原理是将有关依赖树(Cargo.lock)的数据以 JSON 格式嵌入到编译后的可执行文件的专用链接器部分中。 - [rustfix](https://github.com/csscomb/csscomb.js) — 读取并应用 rustc(以及第三方 lints,如 clippy 提供的那些)的建议。 - [rustfmt](http://csslint.net) — 一种根据风格指南格式化 Rust 代码的工具。 - [RustViz](https://graphmycss.com) — RustViz 是一个工具,它从简单的 Rust 程序生成可视化,以帮助用户更好地理解 Rust 生命周期和借用机制。它生成带有图形指示器的 SVG 文件,这些指示器与 mdbook 集成以渲染 Rust 程序中数据流的可视化。 - [TangleGuard](https://validator.github.io/validator/) :copyright: — 帮助您理解和维护可扩展的软件架构。为此,它从源代码生成一个交互式的嵌套依赖图。您可以选择细节级别并获取对您重要的代码库部分。 - **warnalyzer** :warning: — 显示来自多 crate Rust 项目的未使用代码

SQL

- [dbcritic](https://postcss.org) — dbcritic 在数据库架构中发现问题,例如表中缺少主键约束。 - [holistic](https://www.projectwallace.com) — 超过 1,300 条分析 SQL 查询的规则。接收 SQL 架构定义和查询源代码以生成改进建议。检测代码异味、未使用的索引、未使用的表、视图、物化视图等。 - [pgspot](https://www.projectwallace.com) — 发现 postgres 扩展脚本中的漏洞。在 PostgreSQL 扩展脚本或任何其他 PostgreSQL SQL 代码中发现不安全的 `search_path` 使用和不安全的对象创建。 - [sleek](https://github.com/pocketjoso/specificity-graph) — Sleek 是一个用于格式化 SQL 的 CLI 工具。它帮助您在 SQL 代码中保持一致的风格,从而提高可读性和生产力。繁重的工作由 sqlformat crate 完成。 - **sqlcheck** :warning: — 自动识别 SQL 查询中的反模式。 - [SQLFluff](http://stylelint.io) — 多方言 SQL linter 和格式化工具。 - [sqlint](https://dotenv-linter.readthedocs.io/en/latest) — 简单的 SQL linter。 - [squawk](https://dotenv-linter.github.io/#/) — PostgreSQL 的 Linter,专注于迁移。防止由数据库迁移引起的意外停机,并鼓励围绕 Postgres 架构和 SQL 的最佳实践。 - **tsqllint** :warning: — 特定于 T-SQL 的 linter。 - **TSqlRules** :warning: — SQL Server 的 TSQL 静态代码分析规则。 - [Visual Expert](https://github.com/yandex/gixy) :copyright: — PowerBuilder、Oracle 和 SQL Server 的代码分析。探索、分析和记录代码。

Scala

- **linter** :warning: — Linter 是一个 Scala 静态分析编译器插件,它为各种可能的错误、低效和风格问题添加编译时检查。 - [Scalastyle](https://ansible.readthedocs.io/projects/lint/) — Scalastyle 检查您的 Scala 代码并指出其潜在问题。 - [scapegoat](https://github.com/aws-cloudformation/cloudformation-guard) — 用于静态代码分析的 Scala 编译器插件。 - [WartRemover](https://azsk.azurewebsites.net/) — 一个灵活的 Scala 代码 linting 工具。

Shell

- [bashate](https://github.com/awslabs/cfn-python-lint) — bash 程序的代码风格强制执行。输出格式旨在遵循 pycodestyle (pep8) 默认输出格式。 - **i-Code CNES for Shell** :warning: — 用于 Shell 和 Fortran (77 和 90) 的开源静态代码分析工具。 - [kmdr](https://github.com/stelligent/cfn_nag) — 用于从终端学习命令的 CLI 工具。kmdr 提供命令细分并解释每个属性。 - [sh](https://www.checkov.io) — 支持 bash 的 shell 解析器、格式化器和解释器;包括 shfmt。 - [shellcheck](https://docs.chef.io/cookstyle.html) — ShellCheck,一个静态分析工具,为 bash/sh shell 脚本提供警告和建议。 - [shellharden](http://www.foodcritic.io) — 一个语法高亮器和工具,用于半自动化地将脚本重写以符合 ShellCheck 要求,主要专注于引用。

Swift

- [SwiftFormat](https://kics.io/) — 用于重新格式化 Swift 代码的库和命令行格式化工具。 - [SwiftLint](https://github.com/voxpupuli/metadata-json-lint) — 用于强制执行 Swift 风格和约定的工具。 - **Tailor** :warning: — 用于用 Apple Swift 编程语言编写的源代码的静态分析和 lint 工具。

Tcl

- [Frink](https://steampunk.si/spotter/) — Tcl 格式化和静态检查程序(可以美化程序、最小化、混淆或只是进行健全性检查)。 - [Nagelfar](https://terraform-compliance.com) — Tcl 的静态语法检查器。 - [tclchecker](https://github.com/cesar-rodriguez/terrascan) — 静态语法分析模块(作为 [TDK](https://github.com/wata727/tflint) 的一部分)。

TypeScript

- [Angular ESLint](https://github.com/tfsec/tfsec) — Angular 项目的 Linter - **Codelyzer** :warning: — 一组用于 Angular 2 TypeScript 项目静态代码分析的 tslint 规则。 - **ENRE-ts** :warning: — ENRE (实体关系提取器) 是一种用于从源代码中提取代码实体依赖项或关系的工具。ENRE-ts 是一个基于 @babel/parser 的 ECMAScript 和 TypeScript 实体关系提取器。 - [fta](https://anchore.io) — 基于 Rust 的 TypeScript 项目静态分析 - **stc** :warning: — 用 Rust 编写的快速 TypeScript 类型检查器 - **tslint** :warning: — TSLint 自 2019 年起已被弃用。有关更多详细信息,请参阅 [this issue](https://github.com/coreos/clair)。`typescript-eslint` 现在是 linting TypeScript 的最佳选择。 TSLint 是一个可扩展的静态分析工具,用于检查 TypeScript 代码的可读性、可维护性和功能错误。它在现代编辑器和构建系统中得到广泛支持,并可以使用您自己的 lint 规则、配置和格式化程序进行自定义。 - [tslint-clean-code](https://codepathfinder.dev) — 一套受 Clean Code 手册启发的 TSLint 规则。 - **tslint-microsoft-contrib** :warning: — 一套由 Microsoft 维护的用于 TypeScript 项目静态代码分析的 tslint 规则。 - [TypeScript Call Graph](https://github.com/goodwithtech/dockle) — CLI,用于从 TypeScript 文件生成函数和调用的交互式图表 - [TypeScript ESLint](https://www.gitguardian.com/ggshield) — eslint 的 TypeScript 语言扩展。 - [zod](https://github.com/anchore/grype) — 具有静态类型推断的 TypeScript 优先模式验证。目标是消除重复的类型声明。使用 Zod,您声明一次验证器,Zod 将自动推断静态 TypeScript 类型。它很容易将简单类型组合成复杂的数据结构。

Verilog/SystemVerilog

- **Icarus Verilog** :warning: — 一个 Verilog 模拟和综合工具,通过将用 IEEE-1364 Verilog 编写的源代码编译成某种目标格式来运行。 - [svls](https://github.com/lukasmartinelli/hadolint) — 针对 Verilog 和 SystemVerilog 的语言服务器协议实现,包括 lint 功能。 - **verible-linter-action** :warning: — 在 github actions 中借助 Verible 自动进行 SystemVerilog linting。用于 lint Verilog 和 SystemVerilog 源文件,并在 Pull Requests 中自动注释错误的代码行。 - [Verilator](https://kics.io/) — 一种将 Verilog 转换为 C++ 或 SystemC 中周期精确的行为模型的工具。执行 lint 代码质量检查。 - [vscode-verilog-hdl-support](https://github.com/appvia/krane) — VS Code 的 Verilog HD/SystemVerilog/Bluespec SystemVerilog 支持。提供来自 Icarus Verilog、Vivado 逻辑模拟、Modelsim 和 Verilator 的语法高亮和 Linting 支持

Vim Script

- **vint** :warning: — 由 Python 实现的快速且高度可扩展的 Vim script 语言 Lint。

WebAssembly

- [Twiggy](https://www.open-scap.org/) — 分析二进制文件的调用图以分析代码大小。目标是减小 wasm 二进制大小。 - [wasm-language-tools](https://www.qualys.com/apps/container-security) — WebAssembly 语言工具旨在提供和改进 WebAssembly 文本格式的编辑体验。它还为 WebAssembly 文本格式提供了一个开箱即用的格式化程序(又名 pretty printer)。 ## 多语言 - [ale](https://sysdig.com/) — 适用于 Vim 和 NeoVim 的异步 Lint 引擎,支持多种语言。 - [Android Studio](https://vuls.io/) — 基于 IntelliJ IDEA,并捆绑了适用于 Android 的工具,包括 Android Lint。 - [AppChecker](https://rhysd.github.io/actionlint) :copyright: — 适用于 C/C++/C#、PHP 和 Java 的静态分析。 - [Application Inspector](https://azsk.azurewebsites.net/) :copyright: — 生成漏洞以验证安全漏洞的商业静态代码分析。 - [ApplicationInspector](https://codeclimate.com) — 创建超过 400 条规则模式的报告,用于功能检测(例如,在应用程序中使用加密或版本控制)。 - [ArchUnit](https://codepathfinder.dev) — 对您的 Java 或 Kotlin 架构进行单元测试。 - [ast-grep](https://about.codecov.io/) — ast-grep 是一个强大的工具,旨在使用抽象语法树 (AST) 大规模管理代码。可以将其视为 grep、eslint 和 codemod 的混合体,能够基于代码结构而非纯文本搜索、lint 和重写代码。 它支持多种语言并设计为可扩展,允许您注册自定义语言。 - **Atom-Beautify** :warning: — 在 Atom 编辑器中美化 HTML、CSS、JavaScript、PHP、Python、Ruby、Java、C、C++、C#、Objective-C、CoffeeScript、TypeScript、Coldfusion、SQL 等。 - [autocorrect](https://coderabbit.ai) — 一个 linter 和格式化程序,帮助您改进文案,更正 CJK(中文、日文、韩文)之间的空格、单词、标点符号。 - [Axivion Bauhaus Suite](https://github.com/shipmonk-rnd/composer-dependency-analyser) :copyright: — 为 C/C++、C#/.NET、Java 和 Ada 83/Ada 95 追踪易出错的代码位置、风格违规、克隆或死代码、循环依赖等。 - [Bearer](https://www.diffblue.com/) — 开源静态代码分析工具,用于发现、过滤和优先处理导致敏感数据泄露 (PII、PHI、PD) 的安全风险和漏洞。高度可配置且易于扩展,专为安全和工程团队构建。 - [Better Code Hub](https://www.exakat.io) :copyright: — Better Code Hub 根据 10 项工程准则检查您的 GitHub 代码库,这些准则由软件质量权威机构 Software Improvement Group 制定。 - **Betterscan CE** :warning: — 检查您的代码和基础设施(支持各种 Git 仓库、云堆栈、CLI、Web 界面平台、可用集成)是否存在安全和质量问题。使用许多工具/扫描器进行代码扫描/SAST/Linting,并通过一份报告(AI 可选)进行去重。 - [biome](https://www.gitguardian.com/ggshield) — 用于 Web 项目的工具链,旨在提供维护它们的功能。Biome 在几分之一秒内格式化和 lint 代码。它是 Rome 的继任者。它的设计最终旨在替换 Babel、ESLint、webpack、Prettier、Jest 等。 - [BlockWatch](https://goblint.in.tum.de) — 一个语言无关的 linter,使代码、文档和配置保持同步,并强制执行严格的格式化和验证规则。 - **BugProve** :warning: :copyright: — BugProve 是一个固件分析平台,结合静态和动态分析技术来发现二进制代码中的内存损坏、命令注入和其他类别的常见弱点。它还检测易受攻击的依赖项、弱加密参数、错误配置等。 - [callGraph](https://www.hackerone.com/product/code) — 静态生成调用图图像并在屏幕上显示。 - [CAST Highlight](https://github.com/jimbethancourt/RefactorFirst) :copyright: — 在本地运行但将结果上传到其云以进行展示的商业静态代码分析。 - [Checkmarx CxSAST](https://github.com/haya14busa/reviewdog) :copyright: — 不需要预编译的商业静态代码分析。 - [ClassGraph](https://insight.symfony.com/) — 类路径和模块路径扫描器,用于查询或可视化类元数据或类相关性。 - [Clayton](https://tangleguard.com/) :copyright: — 面向 Salesforce 的 AI 驱动代码审查。保护您的开发,强制执行最佳实践并实时控制您的技术债务。 - **coala** :warning: — 用于创建代码分析的语言无关框架 - 默认支持 60 多种语言。 - [Cobra](https://github.com/tomasbjerre/violations-lib) :copyright: — 由 NASA 喷气推进实验室开发的结构化源代码分析器。 - [Codacy](https://github.com/denoland/deno_lint) :copyright: — 代码分析,以便更快地交付更好的代码。 - [Code Intelligence](https://plugins.jetbrains.com/plugin/25413-cloud-iac-security) :copyright: — 与 CI/CD 无关的 DevSecOps 平台,结合了行业领先的模糊测试引擎,用于查找错误和可视化代码覆盖率。 - [Code-Graph-RAG](https://codepathfinder.dev) — 使用 Tree-sitter AST 解析从多语言代码库构建知识图,并将它们存储在 Memgraph 中。支持 11 种编程语言,具有统一的图架构,并支持对代码结构和关系进行自然语言查询和编辑。作为 AI 助手集成的 MCP 服务器运行。 - [Codeac](https://github.com/goodwithtech/dockle) :copyright: — 自动化代码审查工具,与 GitHub、Bitbucket 和 GitLab(甚至是自托管的)集成。适用于 JavaScript、TypeScript、Python、Ruby、Go、PHP、Java、Docker 等。(开源免费) - [codeburner](https://github.com/priv-kweihmann/oelint-adv) — 提供统一的界面来排序和处理它发现的问题。 - [codechecker](https://github.com/Shopify/erb-lint) — Clang 静态分析器的缺陷数据库和查看器扩展,具有 Web GUI。 - [CodeFactor](https://github.com/nebulab/erb-formatter) :copyright: — 适用于 GitHub 或 BitBucket 上仓库的自动化代码分析。 - [CodeFlow](https://github.com/threedaymonk/htmlbeautifier) :copyright: — 用于处理技术深度的自动化代码分析工具。与 Bitbucket 和 Gitlab 集成。(开源项目免费) - [Codemodder](https://github.com/vsiakka/gherkin-lint) — Codemodder 是一个用于构建富有表现力的 codemods 的可插拔框架。当您需要的不仅仅是 linter 或代码格式化工具时,请使用 Codemodder。用它来修复非平凡的安全问题和其他代码质量问题。 - [codeql](https://github.com/angular-eslint/angular-eslint#readme) — 深度代码分析 - 针对多种语言的语义查询和数据流,具有 VSCode 插件支持。 - [CodeQue](https://www.deque.com/axe/) — 用于结构匹配 JavaScript 和 TypeScript 代码的生态系统。提供理解代码结构的搜索工具。可作为 CLI 工具和 Visual Studio Code 扩展使用。它有助于更快、更准确地搜索代码,从而提高您的工作流程效率。不久它将提供 ESLint 插件,以便在几分钟内创建您自己的规则,帮助确保代码库质量。 - [CodeRush](https://github.com/Shopify/erb-lint) :copyright: — 代码创建、调试、导航、重构、分析和可视化工具,在 Visual Studio 2015 及更高版本中使用 Roslyn 引擎。 - [CodeScan](https://github.com/nebulab/erb-formatter) :copyright: — 面向 Salesforce 开发人员的代码质量和安全。专为 Salesforce 平台打造,CodeScan 的代码分析解决方案让您全面了解代码运行状况。 - [CodeScene](https://github.com/twbs/bootlint) :copyright: — CodeScene 是一款软件质量可视化工具。确定技术债务的优先级,检测交付风险并衡量组织方面。全自动化。 - [CodeSee](https://github.com/twbs/bootlint) :copyright: — CodeSee 正在映射和自动化应用程序的服务、目录、文件依赖项和代码更改。就像 Google Map,但是是针对代码的。 - [CodeSonar from GrammaTech](http://www.html-tidy.org) :copyright: — 针对 C、C++、Java 和 C# 的高级、全程序、深度路径静态分析,具有易于理解的解释以及代码和路径可视化。 - [Codety](https://html-validate.org/) :copyright: — Codety Scanner 是一个全面的源代码扫描器,嵌入了 5000 多条静态代码分析规则,旨在检测 20 多种编程语言和 IaC 工具的代码问题。 - [Codiga](https://github.com/threedaymonk/htmlbeautifier) :copyright: — 自动化代码审查和技术债务管理平台,支持 12 种以上语言。 - [Corgea](https://htmlhint.com) :copyright: — Corgea 是一个 AI 驱动的 SAST 扫描器,可帮助开发人员发现并修复不安全的代码。它以极少的误报发现业务逻辑缺陷、身份验证损坏、API 漏洞等。此外,它会自动编写安全修复供您批准。Corgea 与 GitHub、GitLab、Azure DevOps、IDE 和 CLI 集成。试用是免费的。 - **Corrode** :warning: — 从 C 到 Rust 的半自动翻译。可以通过显示 Rust 编译器警告和错误来揭示原始实现中的错误。已被 C2Rust 取代。 - [Coverity](https://validator.github.io/validator/) :copyright: — Synopsys Coverity 支持 20 种语言和 70 多种框架,包括 Ruby on rails、Scala、PHP、Python、JavaScript、TypeScript、Java、Fortran、C、C++、C#、VB.NET。 - [cpp-linter-action](https://pa11y.org/) — 一个用于 linting C/C++ 代码的 Github Action,集成了 clang-tidy 和 clang-format,以收集以线程注释和/或注释的形式提供的反馈。 - **cqc** :warning: — 检查 js、jsx、vue、css、less、scss、sass 和 styl 文件的代码质量。 - **DeepCode** :warning: :copyright: — DeepCode 已被 Snyk 收购,现在是 Snyk Code。 - [DeepSource](https://github.com/Polymer/tools/tree/master/packages/analyzer) :copyright: — 深度静态分析,以在错误风险、安全、反模式、性能、文档和风格方面发现问题。与 GitHub、GitLab 和 Bitbucket 原生集成。误报率低于 5%。 - [deleaker](https://jsonlint.com/) :copyright: — Deleaker 是适用于 C++、.NET 和 Delphi 的内存泄漏检测工具,与 Visual Studio、Qt Creator 和 RAD Studio 集成或作为独立应用程序运行。它帮助开发人员高效地查找并修复内存、GDI 和句柄泄漏。 - [Depends](https://stoplight.io/open-source/spectral) — 分析 Java、C/C++、Ruby 的代码元素的综合依赖项。 - [DerScanner](https://github.com/helm/chart-testing) :copyright: — 多语言静态应用程序安全测试 (SAST) 平台,可检测关键漏洞,包括硬编码机密、弱加密、后门、SQL 注入、不安全配置等。 - [DevSkim](https://plugins.jetbrains.com/plugin/25413-cloud-iac-security) — 基于 Regex 的静态分析工具,适用于 Visual Studio、VS Code 和 Sublime Text - C/C++、C#、PHP、ASP、Python、Ruby、Java 等。 - [diesel-guard](https://github.com/digitalocean/clusterlint) — 用于 Diesel 和 SQLx 中危险 Postgres 迁移模式的 Linter。防止由不安全的架构更改引起的停机。 - [dotnet-format](https://datree.io/) — .NET 的代码格式化程序。首选项将从 `.editorconfig` 文件中读取(如果存在),否则将使用一组默认首选项。目前,dotnet-format 能够使用支持的 `.editorconfig` 选项的子集来格式化 C# 和 Visual Basic 项目。 - [Embold](https://kics.io/) :copyright: — 智能软件分析平台,可识别设计问题、代码问题、重复和指标。支持 Java、C、C++、C#、JavaScript、TypeScript、Python、Go、Kotlin 等。 - **emerge** :warning: — Emerge 是一个源代码和依赖项可视化工具,可用于收集有关源代码结构、指标、依赖项和软件项目复杂性的信息。扫描项目的源代码后,它为您提供一个交互式 Web 界面,通过使用图结构来探索和分析您的项目。 - [Enforster AI](https://github.com/uswitch/klint) :copyright: — Enforster AI 执行上下文代码安全 SAST,利用 LLM 和来减少并丰富逻辑缺陷、机密、数据泄露、供应链和技术漏洞的检测。 - [ESLint](https://github.com/appvia/krane) — 一个可扩展的 JS linter,遵循 ECMAScript 标准。 - [ezno](https://aquasecurity.github.io/kube-hunter/) — 用 Rust 编写的 JavaScript 编译器和 TypeScript 检查器,专注于静态分析和运行时性能。Ezno 的类型检查器是从头开始构建的。该检查器完全兼容 TypeScript 类型注释,并且可以在完全没有类型注释的情况下工作。 - [Find Security Bugs](https://github.com/viglesiasce/kube-lint) — 用于 Java Web 应用程序和 Android 应用程序安全审计的 SpotBugs 插件。(也适用于 Kotlin、Groovy 和 Scala 项目) - [Fortify](https://github.com/stackrox/kube-linter) :copyright: — 支持扫描 C/C++、C#、VB.NET、VB6、ABAP/BSP、ActionScript、Apex、ASP.NET、Classic ASP、VB Script、Cobol、ColdFusion、HTML、Java、JS、JSP、MXML/Flex、Objective-C、PHP、PL/SQL、T-SQL、Python (2.6, 2.7)、Ruby (1.9.3)、Swift、Scala、VB 和 XML 的商业静态分析平台。 - [Freeplane Code Explorer](https://kube-score.com) — Freeplane 中的代码浏览器模式旨在分析编译为 JVM 类文件的代码的结构和依赖项。如果 Freeplane 正在运行并且 ArchUnit 在测试期间检测到违规,它还允许直接在 Freeplane 中显示 ArchUnit 测试结果。 - [Goodcheck](https://github.com/yannh/kubeconform) — 基于 Regexp 的可自定义 linter。 - **goone** :warning: — 在 go 代码中查找 N+1 查询(for 循环中的 SQL 调用) - [graudit](https://analysis-tools.dev/tool/kubeval) — Grep 粗略审计 - 源代码审计工具。 - [HCL AppScan Source](https://github.com/stackrox/kube-linter) :copyright: — 商业静态代码分析。 - **Hopper** :warning: — 用 scala 编写的静态分析工具,适用于在 JVM 上运行的语言。 - [Hound CI](https://www.ctan.org/pkg/lacheck) — 在 GitHub pull requests 中评论风格违规。支持 Coffeescript、Go、HAML、JavaScript、Ruby、SCSS 和 Swift。 - **imhotep** :warning: — 评论进入您仓库的提交,并检查语法错误和一般 lint 警告。 - **include-gardener** :warning: — 用于 C/C++/Obj-C/Python/Ruby 的多语言静态分析器,用于创建一个图(dot 或 graphml 格式),该图显示给定文件集的所有 `#include` 关系。 - [Infer](https://texlab.netlify.app) — 适用于 Java、C 和 Objective-C 的静态分析器 - [Joern](https://github.com/larastan/larastan) — Joern 是一个用于分析源代码、字节码和二进制可执行文件的平台。它生成代码属性图 (CPG),这是用于跨语言代码分析的代码图表示。代码属性图存储在自定义图数据库中。这允许使用基于 Scala 的特定领域查询语言制定的搜索查询来挖掘代码。Joern 的开发目标是提供一个有用的工具,用于漏洞发现和静态程序分析研究。 - [jQAssistant](https://github.com/mrtazz/checkmake) — jQAssistant 是一个基于插件的软件分析平台,允许将代码结构和元数据从仓库扫描到 Neo4j 图数据库中。收集的数据可用于使用查询进行临时探索、可视化或定义用于持续架构验证的规则。 - [keploy](https://pypi.org/project/mbake/) — Keploy 是一个开源测试平台,可帮助开发人员自动化和简化他们的测试过程。它提供 API 和集成测试代理,生成实际有效的 API 测试和模拟/存根。此外,Keploy 提供了一个 AI 驱动的单元测试代理,可直接在您的 GitHub PR 和 VSCode 中生成稳定、有用的单元测试,有助于发现错误并提高代码质量。 - [Kiuwan](https://www.freebsd.org/cgi/man.cgi?query=portlint&sektion=1&manpath=FreeBSD+8.1-RELEASE+and+Ports) :copyright: — 在极快、协作的环境中识别并消除网络威胁,并与您的 SDLC 无缝集成。Python、C\C++、Java、C#、PHP 等。 - [Klocwork](https://github.com/DavidAnson/markdownlint) :copyright: — 适用于 C/C++、Java 和 C# 的质量和安全静态分析。 - [LangLint](https://mdformat.rtfd.io) — 适用于 20 多种文件类型的代码注释和文档字符串的自动翻译平台。消除国际软件合作中的语言障碍。支持 100 多种语言对并具有语法保护。集成到 CI/CD 管道中,如 Ruff。通过并发处理速度提高 10-20 倍。 - [LGTM](https://github.com/mivok/markdownlint) :copyright: — 使用源代码上的 CodeQL 查找安全漏洞、变体和关键代码质量问题。自动 PR 代码审查;开源免费。前身为 semmle。支持托管在 Bitbucket Cloud、GitHub.com、GitLab.com 上的公共 Git 仓库。 - [lizard](https://github.com/hougesen/mdsf) — Lizard 是一个适用于多种编程语言(包括 C/C++(不需要所有头文件或 Java 导入))的可扩展圈复杂度分析器。它还执行复制粘贴检测(代码克隆检测/代码重复检测)以及许多其他形式的静态代码分析。计算不带注释的代码行数、CCN(圈复杂度数)、函数的 token 计数、函数的参数计数。 - [Mega-Linter](https://remark.js.org) — 多亏了其 70 多个嵌入式 Linter,Mega-Linter 可以处理任何类型的项目, 其高级报告,可在任何 CI 系统或本地运行, 具有辅助安装和配置,能够应用格式化和修复 - [Mobb](https://textlint.github.io/) :copyright: — Mobb 是一个值得信赖的自动漏洞修复程序,用于保护应用程序、减少安全积压,并让开发人员专注于创新。Mobb 对开源项目免费。 - [MOPSA](https://github.com/PyCQA/flake8) — 一个静态分析器,旨在跨广泛不同的语言(例如 C 和 Python)轻松重用抽象域。 - [Neurolint-CLI](https://pypi.org/project/flakeheaven/) — 使用 AST 解析和基于规则的转换的确定性代码转换工具。 自动修复 50 多个问题,包括可访问性违规、 水合错误、React 19/Next.js 16 迁移和配置更新。具有 5 步故障安全编排功能,以确保零破坏性更改。专为 React、Next.js 和 TypeScript 项目设计。 - [oclint](https://github.com/360EntSecGroup-Skylar/goreporter) — 静态源代码分析工具,用于提高 C、C++ 和 Objective-C 的质量并减少缺陷。 - [Offensive 360](https://github.com/PyCQA/prospector) :copyright: — 商业静态代码分析系统,不需要构建源代码或预编译。 - [OpenRewrite](https://developer.android.com/studio/write/lint) — OpenRewrite [修复常见的静态分析问题](https://github.com/secure-software-engineering/FlowDroid),这些问题通过 Sonar 和其他工具报告,使用 Maven 和 Gradle 插件或 Moderne CLI。 - [OpenStaticAnalyzer](https://mariana-tren.ch/) — OpenStaticAnalyzer 是一个源代码分析器工具,可以对复杂系统的源代码执行深度静态分析。 - [oxc](https://oversecured.com) — Oxidation Compiler 正在创建一套用 Rust 重写的高性能 JavaScript/TypeScript 语言工具。 - [parasoft](https://fbredex.com) :copyright: — 用于单元、API 和 Web UI 测试的自动化软件测试解决方案。符合 MISRA、OWASP 等标准。 - [pfff](https://github.com/astro/deadnix) — Facebook 的代码分析、可视化或风格保留源转换工具,适用于多种语言。 - [Pixee](https://github.com/nerdypepper/statix) :copyright: — Pixeebot 发现您代码中的安全和代码质量问题,并创建包含建议修复的合并就绪 pull request。 - [PMD](https://github.com/lirantal/lockfile-lint) — 适用于 Java、Salesforce Apex、Javascript、PLSQL、XML、XSL 等的源代码分析器。 - [pre-commit](http://standardjs.com) — 用于管理和维护多语言 pre-commit hooks 的框架。 - [Precaution](https://github.com/shipmonk-rnd/composer-dependency-analyser) — Precaution 是一个静态分析安全工具 (SAST),旨在在生产之前发现源代码中潜在的关键漏洞。它可用作 CLI、GitHub Action 和 GitHub App。 - [Prettier](https://wiki.debian.org/Lintian) — 主观的代码格式化程序。 - [Pronto](https://github.com/rpm-software-management/rpmlint) — 对您的更改进行快速自动代码审查。支持 40 多种适用于各种语言的运行程序,包括 Clang、Elixir、JavaScript、PHP、Ruby 等。 - **PT.PM** :warning: — 一种用于在源代码中搜索模式的引擎,基于统一 AST 或 UST。目前支持 C#、Java、PHP、PL/SQL、T-SQL 和 JavaScript。模式可以在代码内或使用 DSL 进行描述。 - [Putout](https://github.com/facetoe/promformat) — 可插拔和可配置的代码转换器,内置 eslint、babel 插件支持,适用于 js、jsx、typescript、flow、markdown、yaml 和 json。 - [PVS-Studio](https://github.com/facetoe/promval) :copyright: — ([对 FOSS 和个人开发人员有条件免费](https://buf.build))针对 C、C++、C# 和 Java 代码的静态分析。出于广告目的,[您可以提议一个大型 FOSS 项目供 PVS 员工进行分析](https://github.com/yoheimuta/protolint)。支持 CWE 映射、OWASP ASVS、MISRA、AUTOSAR 和 SEI CERT 编码标准。 - [pylama](https://github.com/voxpupuli/metadata-json-lint) — 适用于 Python 和 JavaScript 的代码审计工具。封装了 pycodestyle、pydocstyle、PyFlakes、Mccabe、Pylint 等。 - [Qwiet AI](https://github.com/gregnavis/active_record_doctor) :copyright: — 在代码库独有的漏洞到达生产环境之前识别它们。利用代码属性图 (CPG) 在单个图中的图上并发运行其分析。自动在开发中发现业务逻辑缺陷,如硬编码机密和逻辑炸弹。 - [Refactoring Essentials](https://github.com/flyerhzm/bullet) — 适用于 C# 和 VB.NET 重构的免费 Visual Studio 2015 扩展,包括代码最佳实践分析器。 - [relint](https://github.com/djezzzl/database_consistency) — 允许您使用正则表达式 编写自定义规则的静态文件 linter。 - [ReSharper](https://github.com/thesp0nge/dawnscanner) :copyright: — 通过即时代码检查扩展 Visual Studio,适用于 C#、VB.NET、ASP.NET、JavaScript、TypeScript 和其他技术。 - [Rev-dep](https://github.com/nebulab/erb-formatter) — 面向现代 JavaScript 和 TypeScript 项目的依赖项分析和优化工具箱。跟踪导入,识别循环依赖,查找未使用的代码,清理 node 模块。 - [RIPS](https://github.com/fastruby/skunk) :copyright: — 用于 PHP 脚本中漏洞的静态源代码分析器。 - [Roslyn Analyzers](https://github.com/amatsuda/traceroute) — 基于 Roslyn 的 FxCop 分析器实现。 - [Roslyn Security Guard](https://azsk.azurewebsites.net/) — 专注于识别潜在漏洞(例如 SQL 注入、跨站脚本 (XSS)、CSRF、加密弱点、硬编码密码等)的项目。 - [SafeQL](https://brakemanscanner.org) — 从 PostgreSQL 中的原始 SQL 查询验证并自动生成 TypeScript 类型。SafeQL 是一个 ESLint 插件,用于以类型安全的方式编写 SQL 查询。 - [SAST Online](https://plugins.jetbrains.com/plugin/25413-cloud-iac-security) :copyright: — 彻底检查 Android 源代码以发现和解决潜在的安全问题和漏洞。在线静态应用程序安全测试(静态代码分析)工具 - **Scrutinizer** :warning: :copyright: — 可与 GitHub 集成的专有代码质量检查器。 - [Security Code Scan](https://codepathfinder.dev) — 适用于 C# 和 VB.NET 的安全代码分析器。检测各种安全漏洞模式:SQLi、XSS、CSRF、XXE、Open Redirect 等。集成到 Visual Studio 2015 及更高版本中。检测各种安全漏洞模式:SQLi、XSS、CSRF、XXE、Open Redirect 等。 - [Semgrep](https://github.com/SAP/credential-digger) — 一个快速、开源的静态分析工具,用于在编辑器、提交和 CI 时查找错误并强制执行代码标准。其规则看起来就像您已经编写的代码;不需要抽象语法树或 regex 角力。支持 17 种以上语言。 - [Semgrep Supply Chain](https://huggingface.co/SAPOSS/password-model) :copyright: — 快速查找和修复高优先级安全问题。Semgrep Supply Chain 优先处理您的代码可以访问的 2% 的漏洞。 - [Seqra](https://datree.io/) — 面向 Java 和 Kotlin Web 应用程序的安全重点静态分析器。使用 Semgrep 风格的 YAML 规则和 CodeQL 级数据流(对 Spring 有一流支持)分析字节码,发现仅源代码扫描器遗漏的漏洞。 - **ShiftLeft Scan** :warning: — Scan 是一个免费的开源 DevSecOps 平台,用于检测源代码和依赖项中的安全问题。它支持广泛的语言和 CI/CD 管道。注意:ShiftLeft 于 2023 年更名为 Qwiet AI,随后于 2025 年 9 月被 Harness 收购。此开源项目不再维护。 - **shipshape** :warning: — 静态程序分析平台,允许自定义分析器通过通用接口插入。 - [Sigrid](https://github.com/Yelp/detect-secrets) :copyright: — Sigrid 通过衡量系统的代码质量来帮助您改进软件,然后将结果与数千个行业系统的基准进行比较,为您在可以改进的领域提供具体建议。 - [Similarity Tester](https://github.com/goodwithtech/dockle) — 一种在文件之间或文件内部查找相似性以帮助您遇到 DRY 原则违规的工具。 - [Skylos](https://www.gitguardian.com/ggshield) — 面向 Python、TypeScript 和 Go 的死代码检测、安全扫描、机密检测和代码质量分析。具有 98% 召回率的感知框架分析。包括 CI/CD GitHub Action、VS Code 扩展和用于 AI 集成的 MCP 服务器。 - [Snyk Code](https://github.com/zricethezav/gitleaks) :copyright: — Snyk Code 基于 AI 查找安全漏洞。其分析速度使我们能够实时分析您的代码,并在您在 IDE 中点击保存按钮时提供结果。支持的语言有 Java、JavaScript、Python、PHP、C#、Go 和 TypeScript。与 GitHub、BitBucket 和 Gitlab 集成。试用免费,也是 Snyk 平台的一部分,还涵盖 SCA、容器和 IaC。 - [SonarQube Cloud](https://github.com/praetorian-inc/gokart) :copyright: — SonarQube Cloud 使您的团队能够持续且高效地交付清洁代码,配备易于集成到云 DevOps 平台并扩展您的 CI/CD 工作流程的代码审查工具。SonarQube Cloud 提供免费计划。 - [SonarQube for IDE](https://github.com/anchore/grype) — 适用于 IDE 的 SonarQube(前身为 SonarLint)是一个免费的 IDE 扩展,适用于 IntelliJ、VS Code、Visual Studio 和 Eclipse,用于实时查找和修复编码问题,在您编码时标记问题,就像拼写检查器一样。它不仅仅是一个 linter,它还提供丰富的上下文指导,以帮助开发人员了解存在问题的原因、评估风险并教育他们如何修复它。 - [SonarQube Server](https://github.com/model-checking/kani) — SonarQube 为开发团队提供代码质量和安全解决方案,这些解决方案深入集成到您的企业环境中;使您能够持续可靠地部署清洁代码。SonarQube 提供免费的开源社区版本。 - [Sonatype](https://kics.io/) :copyright: — 报告常见依赖项中的已知漏洞,并推荐更新的软件包以最大程度地减少破坏性更改。 - [Soto Platform](https://aquasecurity.github.io/kube-hunter/) :copyright: — 由三个组件组成的静态分析工具套件:Sotoarc(架构分析)、Sotograph(质量分析)和 Sotoreport(质量报告)。帮助发现架构和实现之间的差异、接口违规(例如,子系统私有部分的外部访问、检测所有通过循环关系紧密耦合的类、文件、包和子系统等。Sotograph 产品系列在 Windows 和 Linux 上运行。 - [SourceMeter](https://github.com/lirantal/lockfile-lint) :copyright: — 适用于 C/C++、Java、C#、Python 以及 RPG III 和 RPG IV 版本(包括自由格式)的静态代码分析。 - [sqlvet](https://malcat.fr/) — 对 Go 代码库中的原始 SQL 查询执行静态分析,以揭示潜在的运行时错误。它检查 SQL 语法错误,识别可能导致 SQL 注入的不安全查询,确保 INSERT 语句中的列数与值数匹配,并验证表名和列名。 - [StaticReviewer](https://osv.dev/) :copyright: — Static Reviewer 根据最相关的安全编码标准、OWASP、CWE、CVE、CVSS、MISRA、CERT 对 40 多种编程语言执行代码检查,使用 1000 多个内置验证规则用于安全、死代码和最佳实践。提供软件组件分析 (SCA) 模块,用于查找开源和第三方库中的漏洞。 - **Super-Linter** :warning: — 多个 linter 的组合,可作为 GitHub Action 安装。 - [Svace](https://oversecured.com) :copyright: — 适用于 Java、C、C++、C#、Go 的静态代码分析工具。 - [Synopsys](https://owasp-noir.github.io/noir/) :copyright: — 允许扫描多种语言(C/C++、Android、C#、Java、JS、PHP、Python、Node.JS、Ruby、Fortran 和 Swift)的商业静态分析平台。 - [Teamscale](https://github.com/pypa/pip-audit) :copyright: — 支持超过 25 种语言和直接 IDE 集成的静态和动态分析工具。可根据请求为开源项目提供免费托管。提供免费的学术许可证。 - **TencentCodeAnalysis** :warning: — 腾讯云代码分析(简称 TCA,早期在公司内部代号为 CodeDog)是一个用于代码分析和问题跟踪的综合平台。TCA 由三个组件组成:server、web 和 client。它集成了许多自研工具,还支持动态集成各种编程语言的代码分析工具。 - [ThreatMapper](https://www.ptsecurity.com) — 运行时容器、无服务器和主机的漏洞扫描器和风险评估。ThreatMapper 从依赖项和操作系统包生成运行时 BOM,与多个威胁源进行匹配,扫描未受保护的机密,并根据严重性和利用风险对问题进行评分。 - [todocheck](https://www.qualys.com/apps/container-security) — 用于将带注释的 TODO 与问题跟踪器集成的 Linter - [trivy](https://safetycli.com/) — 适用于容器和其他工件的简单而全面的漏洞扫描器,适用于 CI。Trivy 检测 OS 包(Alpine、RHEL、CentOS 等)和应用程序依赖项(Bundler、Composer、npm、yarn 等)的漏洞。检查容器和文件系统。 - [trunk](https://github.com/ossf/scorecard) :copyright: — 现代仓库包含许多技术,每种技术都有自己的 linter 集。Trunk 拥有 30 多个 linter,并不断增加,使识别、安装、配置和运行所有仓库的正确 linter、静态分析器和格式化程序变得非常简单。 - [TscanCode](https://steampunk.si/spotter/) — 腾讯提供的用于 C/C++、C#、Lua 代码的快速准确的静态分析解决方案。使用 GPLv3 许可证。 - [Undebt](https://insight.symfony.com/) — 基于简单模式定义的用于大规模、自动、可编程重构的语言无关工具。 - [Understand](https://github.com/tfsec/tfsec) :copyright: — 代码可视化工具,为 Ada、VHDL 等提供代码分析、标准测试、指标、绘图、依赖项分析等。 - [Unibeautify](https://trufflesecurity.com) — 具有 GitHub 应用的通用代码美化工具。支持 HTML、CSS、JavaScript、TypeScript、JSX、Vue、C++、Go、Objective-C、Java、Python、PHP、GraphQL、Markdown 等。 - [Upsource](https://github.com/google/tsunami-security-scanner) :copyright: — 适用于 Java、PHP、JavaScript 和 Kotlin 的代码审查工具,具有静态代码分析和代码感知导航功能。 - [Veracode](https://github.com/ConsenSys/mythril) :copyright: — 在不需要源代码的情况下查找二进制文件和字节码中的缺陷。支持所有主要编程语言:Java、.NET、JavaScript、Swift、Objective-C、C、C++ 等。 - [WALA](https://mythx.io) — 针对 Java 字节码和相关语言以及 JavaScript 的静态分析功能。 - [weggli](https://github.com/trailofbits/slither) — 适用于 C 和 C++ 代码库的快速且强大的语义搜索工具。它旨在帮助安全研究人员识别大型代码库中的有趣功能。 - [WhiteHat Application Security Platform](https://protofire.github.io/solhint) :copyright: — WhiteHat Scout(面向开发人员)与 WhiteHat Sentinel Source(面向运营)相结合,支持 WhiteHat Top 40 和 OWASP Top 10。 - **Wotan** :warning: — 可插拔的 TypeScript 和 JavaScript linter。 - [XCode](https://ethlint.readthedocs.io/en/latest) :copyright: — XCode 为 [Clang 的](https://github.com/uni-bremen-agst/libvcs4j) 静态代码分析器 (C/C++、Obj-C) 提供了相当不错的 UI。 - [Xygeni](https://github.com/jimbethancourt/RefactorFirst) :copyright: — Xygeni 是一个综合的软件供应链安全平台。它提供具有 AI 驱动修复的高级 SAST、具有实时恶意软件检测的软件组件分析 (SCA)、基础架构即代码 扫描和机密检测,以确保端到端的代码安全。 ## 其他

.env

- [GitGuardian ggshield](https://github.com/tomasbjerre/violations-lib) — ggshield 是一个在您的本地环境或 CI 环境中运行的 CLI 应用程序,可帮助您检测超过 350 种类型的机密,以及其他可能影响您代码库的潜在安全漏洞或策略违规。

Ansible

- [kics](https://github.com/ember-template-lint/ember-template-lint) — 在您的基础架构即代码中查找安全漏洞、合规性问题 and 基础设施错误配置。支持 Terraform、Kubernetes、Docker、AWS CloudFormation 和 Ansible。 - [Steampunk Spotter](https://github.com/sds/haml-lint) :copyright: — Ansible Playbook 扫描工具,用于分析您的 playbook 并提供建议。

Archive

- **alquitran** :warning: — 检查 tar 档案并尝试发现有关 POSIX 2017 pax 规范和常见 tar 实现的可移植性问题。 此项目旨在供希望为尽可能多的系统提供可移植源代码档案的项目维护者使用。在发布之前使用 alquitran 检查 tar 档案应该有助于在问题到达分销商和用户之前发现问题。 - [packj](https://github.com/sds/slim-lint) — Packj(发音为 package)是一个命令行 (CLI) 工具,用于审查开源软件包中使其容易受到供应链攻击的“风险”属性。这是我们大规模安全分析平台 Packj.dev 背后的工具,该平台持续审查软件包并提供免费报告。 - **pure** :warning: — Pure 是一个静态分析文件格式检查器,用于检查 ZIP 文件是否存在危险的压缩比率、规范偏差、恶意档案签名、本地和中央目录头不匹配、歧义 UTF-8 文件名、目录和符号链接遍历、无效的 MS-DOS 日期、重叠头、溢出、下溢、稀疏性、意外缓冲区泄漏等。

Azure Resource Manager

- [AzSK](https://yamllint.readthedocs.io) — Azure 安全 DevOps 工具包 (AzSK) 为您的基础架构即代码提供安全 IntelliSense、安全验证测试 (SVT)、CICD 扫描漏洞、合规性问题和基础设施错误配置。通过 ARM 支持 Azure。

Binaries

- [angr](https://www.gitguardian.com/ggshield) — 二进制代码分析工具,也支持符号执行。 - [binbloom](https://kics.io/) — 分析原始二进制固件并确定字节序或加载地址等特性。该工具与所有架构兼容。 加载地址:binbloom 可以解析原始二进制固件并确定其加载地址。字节序:binbloom 可以使用启发式方法确定固件的字节序。UDS 数据库:binbloom 可以解析原始二进制固件并检查其是否包含包含 UDS 命令 ID 的数组。 - [BinSkim](https://github.com/willkg/dennis) — 一个二进制静态分析工具,为 Windows 可移植可执行文件提供安全性和正确性结果。 - [Black Duck](https://html-validate.org/) :copyright: — 用于分析源代码和二进制文件以查找可重用代码、必要许可证和潜在安全方面的工具。 - [bloaty](https://github.com/codespell-project/codespell) — 曾经想知道是什么让您的二进制文件变得很大?Bloaty McBloatface 将向您展示二进制文件的大小配置文件,以便您可以了解是什么占用了空间。Bloaty 对二进制文件进行深度分析。使用自定义 ELF、DWARF 和 Mach-O 解析器,Bloaty 旨在准确地将二进制文件的每个字节归因于生成它的符号或编译单元。它甚至可以反汇编二进制文件以查找对匿名数据的引用。 - **cargo-bloat** :warning: — 找出占用可执行文件最大空间的内容。支持 ELF (Linux, BSD)、Mach-O (macOS) 和 PE (Windows) 二进制文件。 - [cwe_checker](https://languagetool.org) — cwe_checker 在二进制执行文件中查找易受攻击的模式。 - [Ghidra](https://github.com/vlajos/misspell-fixer) — 由 NSA 研究局开发的软件逆向工程 (SRE) 工具套件,以支持网络安全任务。 - [Hopper](https://jwilk.net/software/mwic) :copyright: — macOS 和 Linux 逆向工程工具,允许您反汇编、反编译和调试应用程序。Hopper 使用不同的表示形式显示代码,例如控制流图和过程的伪代码。支持 Apple Silicon。 - [IDA Free](https://github.com/amperser/proselint) :copyright: — 二进制代码分析工具。 - [Jakstab](https://vale.sh) — Jakstab 是一个基于抽象解释的集成反汇编和静态分析框架,用于在可执行文件上设计分析和恢复可靠的控制流图。 - [JEB Decompiler](https://stoplight.io/open-source/spectral) :copyright: — 反编译和调试二进制代码。分解和分析文档文件。Android Dalvik、MIPS、ARM、Intel x86、Java、WebAssembly 和以太坊反编译器。 - [Malcat](https://yamllint.readthedocs.io) :copyright: — 用于恶意软件分析和二进制文件检查的十六进制编辑器和反汇编程序。支持超过 50 种文件格式和多种 CPU 架构 (x86/x64、MIPS、.NET、Python、VB p-code)。具有快速分析、嵌入式文件提取、Yara 签名扫描、异常检测和 Python 脚本功能。专为恶意软件分析师、SOC 操作员、事件响应者和 CTF 玩家设计。 - [Manalyze](https://commitlint.js.org) — 一个静态分析器,用于检查可移植可执行文件中是否存在恶意内容。 - **mcsema** :warning: — 用于将 x86、amd64、aarch64、sparc32 和 sparc64 程序二进制文件提升 到 LLVM bitcode 的框架。它将(“提升”)可执行二进制文件从本机机器代码转换为 LLVM bitcode,这对于执行程序分析方法非常有用。 - [Nauz File Detector](https://www.gitguardian.com/ggshield) — 适用于 Windows、Linux 和 MacOS 的静态链接器/编译器/工具检测器。 - [rhabdomancer](https://github.com/collections/clean-code-linters) — IDA Pro 无头插件,用于在二进制文件中定位对潜在不安全 API 函数的调用。 - [rust-audit](https://github.com/collections/code-quality-in-php) — 审计 Rust 二进制文件中是否存在已知错误或安全漏洞。其工作原理是将有关依赖树(Cargo.lock)的数据以 JSON 格式嵌入到编译后的可执行文件的专用链接器部分中。 - [Twiggy](https://github.com/dominikh/go-tools) — 分析二进制文件的调用图以分析代码大小。目标是减小 wasm 二进制大小。 - [VMware chap](https://github.com/mcandre/linters) — chap 分析未经插桩的 ELF 核心文件是否存在泄漏、内存增长和损坏。它足够可靠,可用于自动化以在提交之前捕获泄漏。作为交互式工具,它有助于解释内存增长,可以识别某些形式的损坏,并通过提供各种内存位置的状态来补充调试器。 - [zydis](https://owasp.org/www-community/Source_Code_Analysis_Tools) — 快速轻量级的 x86/x86-64 反汇编程序库

Build tools

- [checkmake](https://github.com/exakat/php-static-analysis-tools) — Makefiles 的 Linter/分析器。 - [portlint](https://appsecsanta.com/sast-tools) — FreeBSD 和 DragonFlyBSD port 目录的验证程序。

CSS/SASS/SCSS

- [CSS Stats](http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis) — 关于样式表的潜在有趣统计数据。 - [CSScomb](https://i.creativecommons.org/p/zero/1.0/88x31.png) — CSS 的代码风格格式化程序。支持自己的配置,使样式表美观且一致。 - [CSSLint](https://endler.dev) — 进行基本语法检查并查找有问题的模式或低效迹象。 - [GraphMyCSS.com](https://www.freepik.com) — CSS 特异性图生成器。 - [Nu Html Checker]() — 帮助您发现 HTML/CSS/SVG 中的问题。 - **Parker** :warning: — 样式表分析工具。 - [PostCSS]() — 一种使用 JS 插件转换样式的工具。这些插件可以 lint 您的 CSS,支持变量和 mixins,转换未来 CSS 语法,内联图像等。 - [Project Wallace CSS Analyzer]() — CSS 分析,是 [Project Wallace]() 的一部分。 - **sass-lint** :warning: — 仅限 Node 的 Sass linter,适用于 sass 和 scss 语法。 - **scsslint** :warning: — SCSS 文件的 Linter。 - [Specificity Graph]() — CSS 特异性图生成器。 - [Stylelint]() — SCSS/CSS 文件的 Linter。

Config Files

- [dotenv-linter]() — 巧妙地 lint dotenv 文件。 - [dotenv-linter (Rust)]() — 极快的 .env 文件 linter。用 Rust 编写。 - [gixy]() — 分析 Nginx 配置的工具。主要目标是防止错误配置并自动检测缺陷。

Configuration Management

- [ansible-lint]() — 检查 playbook 中可能有潜在改进空间的做法和行为。 - [AWS CloudFormation Guard]() — 根据策略即代码规则检查本地 CloudFormation 模板,并从现有模板生成规则。 - [AzSK]() — Azure 安全 DevOps 工具包 (AzSK) 为您的基础架构即代码提供安全 IntelliSense、安全验证测试 (SVT)、CICD 扫描漏洞、合规性问题和基础设施错误配置。通过 ARM 支持 Azure。 - [cfn-lint]() — AWS Labs CloudFormation linter。 - [cfn_nag]() — AWS CloudFormation 模板的 linter。 - [checkov]() — Terraform 文件 (tf>=v0.12) 的静态分析工具,防止构建时的云错误配置。 - [cookstyle]() — Cookstyle 是基于 RuboCop Ruby linting 工具的 Chef cookbooks linting 工具。 - [foodcritic]() — 一个检查 Chef cookbooks 常见问题的 lint 工具。 - [kics]() — 在您的基础架构即代码中查找安全漏洞、合规性问题 and 基础设施错误配置。支持 Terraform、Kubernetes、Docker、AWS CloudFormation 和 Ansible。 - [metadata-json-lint]() — 检查 Puppet metadata.json 文件有效性的工具。 - **Puppet Lint** :warning: — 检查您的 Puppet 清单是否符合风格指南。 - [Steampunk Spotter]() :copyright: — Ansible Playbook 扫描工具,用于分析您的 playbook 并提供建议。 - [terraform-compliance]() — 针对 Terraform 的轻量级、合规性和安全重点的 BDD 测试框架。 - [terrascan]() — 用于 Terraform 模板静态代码分析的安全和最佳实践测试集合。 - [tflint]() — Terraform linter,用于检测 `terraform plan` 无法检测到的错误。 - [tfsec]() — Terraform 静态分析工具,通过在构建时检查云错误配置并直接与 HCL 解析器集成以获得更好的结果来防止潜在的安全问题。检查 AWS、Azure 和 GCP 安全最佳实践建议的违规情况。

Containers

- [anchore]() — 发现、分析和认证容器镜像。一项分析 Docker 镜像并应用用户定义的接受策略以允许自动容器镜像验证和认证的服务。 - [clair]() — 容器的漏洞静态分析。 - [Code Pathfinder]() — 一个开源安全套件,旨在将结构化代码分析与 AI 驱动的漏洞检测相结合。专为高级结构化搜索、获取见解、发现代码中的漏洞而构建。 - **collector** :warning: — 在容器内运行任意脚本并收集有用信息。 - **dagda** :warning: — 对 docker 镜像/容器中的已知漏洞执行静态分析。 - **Docker Label Inspector** :warning: — Lint 和验证 Dockerfile 标签。 - [Dockle]() — 面向安全的容器镜像 Linter,帮助构建最佳实践 Docker 镜像。扫描 Docker 镜像是否存在安全漏洞和 CIS 基准合规性。检查机密、凭据泄露和安全最佳实践。提供多个严重性级别 (FATAL、WARN、INFO) 并支持各种输出格式用于 CI/CD 集成。 - [GitGuardian ggshield]() — ggshield 是一个在您的本地环境或 CI 环境中运行的 CLI 应用程序,可帮助您检测超过 350 种类型的机密,以及其他可能影响您代码库的潜在安全漏洞或策略违规。 - [Grype]() — 容器镜像和文件系统的漏洞扫描程序。由 Anchore 开发,它扫描容器镜像、目录和档案是否存在已知漏洞。支持多种镜像格式、SBOM 集成和 VEX (漏洞可利用性交换),以进行准确的漏洞评估。使用各种漏洞数据库并提供详细报告。 - [Haskell Dockerfile Linter]() — 一个更智能的 Dockerfile linter,帮助您构建最佳实践的 Docker 镜像。 - [kics]() — 在您的基础架构即代码中查找安全漏洞、合规性问题 and 基础设施错误配置。支持 Terraform、Kubernetes、Docker、AWS CloudFormation 和 Ansible。 - [krane]() — Krane 是一个简单的 Kubernetes RBAC 静态分析工具。 它识别 K8s RBAC 设计中的潜在安全风险,并就如何缓解这些风险提出建议。Krane 仪表板显示当前的 RBAC 安全状况,并允许您浏览其定义。 - [OpenSCAP]() — 一套自动化审计工具,用于检查配置和已知漏洞,遵循 NIST 认证的安全内容自动化协议 (SCAP)。 - [Qualys Container Security]() :copyright: — 容器原生应用程序保护,以提供容器化应用程序的可见性和控制。 - [sysdig]() :copyright: — 用于云和容器取证的安全 DevOps 平台。构建在开源堆栈上,Sysdig 提供 Docker 镜像扫描并创建了 Falco,这是容器、Kubernetes 和云的运行时威胁检测开放标准。 - [Vuls]() — 基于 NVD、OVAL 等信息的无代理 Linux 漏洞扫描程序。它具有一定的容器镜像支持,尽管不是特定的容器工具。

Continuous Integration

- [actionlint]() — GitHub Actions 工作流文件的静态检查器。提供在线版本。 - [AzSK]() — Azure 安全 DevOps 工具包 (AzSK) 为您的基础架构即代码提供安全 IntelliSense、安全验证测试 (SVT)、CICD 扫描漏洞、合规性问题和基础设施错误配置。通过 ARM 支持 Azure。 - [Code Climate]() — 面向所有人的开放且可扩展的静态分析平台。 - [Code Pathfinder]() — 一个开源安全套件,旨在将结构化代码分析与 AI 驱动的漏洞检测相结合。专为高级结构化搜索、获取见解、发现代码中的漏洞而构建。 - [Codecov]() :copyright: — Codecov 是一家为开发人员和工程负责人提供代码覆盖率工具以使其获得代码覆盖率可见性的公司。 他们提供灵活统一的报告、无缝的覆盖率见解和强大的覆盖率控制。Codecov 支持 20 多种语言,并且与 CI/CD 无关。超过 29,000 个组织和 100 万开发人员使用 Codecov。Codecov 最近加入了 Sentry。 - [CodeRabbit]() :copyright: — AI 驱动的代码审查工具,可帮助开发人员更快地编写更好的代码。CodeRabbit 提供自动化代码审查,识别安全漏洞,并建议代码改进。它与 GitHub 和 GitLab 集成。 - [composer-dependency-analyser]() — 快速检测 composer 依赖项问题* 💪 强大:检测未使用的、遮蔽的和错位的 composer 依赖项 * ⚡ 高性能:在 2 秒内扫描 15,000 个文件! * ⚙️ 可配置:通过 PHP 配置进行细粒度忽略 * 🕸️ 轻量级:无 composer 依赖项 * 🍰 易于使用:首次尝试无需配置 * ✨ 兼容:PHP >= 7.2 - [Diffblue]() :copyright: — Diffblue 是一家软件公司,为软件开发团队提供 AI 驱动的代码分析和测试解决方案。 其技术帮助开发人员自动化测试、发现错误并减少软件开发过程中的手动工作。该公司的主要产品 Diffblue Cover 使用 AI 为 Java 代码生成和运行单元测试,有助于发现错误并提高代码质量。 - [exakat]() — PHP 的自动化代码审查引擎。 - [GitGuardian ggshield]() — ggshield 是一个在您的本地环境或 CI 环境中运行的 CLI 应用程序,可帮助您检测超过 350 种类型的机密,以及其他可能影响您代码库的潜在安全漏洞或策略违规。 - [Goblint]() — 用于分析多线程 C 程序的静态分析器。其主要重点是检测数据竞争,但它也报告其他运行时错误,例如缓冲区溢出和空指针解引用。 - [PullRequest]() :copyright: — 具有内置静态分析的代码审查即服务。通过由最佳自动化支持的专家工程师进行的质量代码审查来提高速度并减少技术债务。 - **quality** :warning: — 使用社区工具对您的代码运行质量检查,并确保您的数字随时间推移不会变差。 - **QuantifiedCode** :warning: — 自动化代码审查和修复。它帮助您跟踪软件项目中的问题和指标,并且可以轻松扩展以支持新类型的分析。 - [RefactorFirst]() — 识别并优先处理 Java 代码库中您应该首先重构的上帝类和高耦合类。 - [Reviewdog]() — 用于在任何代码托管服务中发布来自任何 linter 的审查评论的工具。 - [Symfony Insight]() :copyright: — 检测安全风险,查找错误并为 PHP 项目提供可操作的指标。 - [TangleGuard]() :copyright: — 帮助您理解和维护可扩展的软件架构。为此,它从源代码生成一个交互式的嵌套依赖图。您可以选择细节级别并获取对您重要的代码库部分。 - [Violations Lib]() — 用于从静态代码分析解析报告文件的 Java 库。被许多 Jenkins、Maven 和 Gradle 插件使用。

Deno

- [deno_lint]() — Deno 的官方 linter。

Dockerfile

- [Cloud (IaC) Security for JetBrains IDEs]() — JetBrains IDE 的 Cloud (IaC) 安全插件。根据 Docker 镜像/构建安全最佳实践、Kubernetes Pod 安全标准和 NSA/CISA Kubernetes 加固指南,使用 50 多条规则对 Docker 和 Kubernetes IaC 进行实时检查。 - [Code Pathfinder]() — 一个开源安全套件,旨在将结构化代码分析与 AI 驱动的漏洞检测相结合。专为高级结构化搜索、获取见解、发现代码中的漏洞而构建。 - [Dockle]() — 面向安全的容器镜像 Linter,帮助构建最佳实践 Docker 镜像。扫描 Docker 镜像是否存在安全漏洞和 CIS 基准合规性。检查机密、凭据泄露和安全最佳实践。提供多个严重性级别 (FATAL、WARN、INFO) 并支持各种输出格式用于 CI/CD 集成。

Embedded

- [oelint-adv]() — 用于 open-embedded 和 YOCTO 中使用的 bitbake 配方的 Linter。

Embedded Ruby (a.k.a. ERB, eRuby)

- [ERB Lint]() — Lint 您的 ERB 或 HTML 文件。 - [ERB::Formatter]() — 快速且精确地格式化 ERB 文件。 - [htmlbeautifier]() — HTML 的规范化程序/美化程序,也理解嵌入式 Ruby。非常适合整理 Rails 模板。

Gherkin

- [gherkin-lint]() — 用 Javascript 编写的 Gherkin 语法的 linter。

HTML

- [Angular ESLint]() — Angular 项目的 Linter。 - [axe-core]() — 用于自动化 Web UI 测试的可访问性引擎。根据 WCAG 2.0、2.1 和 2.2 指南测试 HTML。被 Google Lighthouse、Microsoft Accessibility Insights 和全球数千个组织使用。 - **Bootlint** :warning: — 用于 Bootstrap 项目的 HTML linter。 - [ERB Lint]() — Lint 您的 ERB 或 HTML 文件。 - [ERB::Formatter]() — 快速且精确地格式化 ERB 文件。 - **grunt-bootlint** :warning: — [Bootlint]()(用于 Bootstrap 项目的 HTML linter)的 Grunt 封装程序。 - **gulp-bootlint** :warning: — [Bootlint](https://github.com/twbs/bootlint) 的 gulp 封装器,Bootlint 是用于 Bootstrap 项目的 HTML linter。 - **HTML Inspector** :warning: — HTML Inspector 是一个代码质量工具,可帮助您和您的团队编写更优秀的标记。 - [HTML Tidy](http://www.html-tidy.org) — 通过修复标记错误并将遗留代码升级为现代标准,来更正和清理 HTML 及 XML 文档。 - [HTML-Validate](https://html-validate.org/) — 离线 HTML5 验证器。 - [htmlbeautifier](https://github.com/threedaymonk/htmlbeautifier) — 一个 HTML 的规范化/美化工具,同时也理解嵌入式 Ruby。非常适合整理 Rails 模板。 - [HTMLHint](https://htmlhint.com) — 一个 HTML 的静态代码分析工具。 - [Nu Html Checker](https://validator.github.io/validator/) — 帮助您发现 HTML/CSS/SVG 中的问题 - [Pa11y](https://pa11y.org/) — 自动化可访问性测试工具,可从命令行运行 HTML CodeSniffer 或 axe-core。支持 CI/CD 集成、多种报告生成器以及针对 WCAG 2.1 AA 标准的测试。 - [Polymer-analyzer](https://github.com/Polymer/tools/tree/master/packages/analyzer) — 用于 Web Components 的静态分析框架。

JSON

- [jsonlint](https://jsonlint.com/) — 带有 CLI 的 JSON 解析器和验证器。jsonlint.com 的独立版本 - [Spectral](https://stoplight.io/open-source/spectral) — 一个灵活的 JSON/YAML linter,开箱即用支持 OpenAPI v2/v3 和 AsyncAPI v2。

Kubernetes

- [chart-testing](https://github.com/helm/chart-testing) — ct 是用于测试 Helm charts 的工具。它旨在用于 linting 和测试 pull requests。它会自动检测相对于目标分支发生变更的 charts。 - [Cloud (IaC) Security for JetBrains IDEs](https://plugins.jetbrains.com/plugin/25413-cloud-iac-security) — JetBrains IDEs 的 Cloud (IaC) Security 插件。基于 Docker 镜像/构建安全最佳实践、Kubernetes Pod Security Standards 以及 NSA/CISA Kubernetes Hardening Guidance 中的 50+ 条规则,对 Docker & Kubernetes IaC 执行实时检查。 - [clusterlint](https://github.com/digitalocean/clusterlint) — Clusterlint 查询实时 Kubernetes 集群中的资源,对这些资源执行通用和平台特定的检查,并为集群操作员提供可操作的反馈。它是一个在外部运行的非侵入式工具。Clusterlint 不会更改资源配置。 - [Datree](https://datree.io/) — 一个 CLI 工具,用于通过确保 manifests 和 Helm charts 遵循最佳实践以及您组织的策略,来防止 Kubernetes 配置错误 - [kics](https://kics.io/) — 在您的 infrastructure-as-code 中发现安全漏洞、合规问题和基础设施配置错误。支持 Terraform、Kubernetes、Docker、AWS CloudFormation 和 Ansible - [klint](https://github.com/uswitch/klint) — 一个侦听 Kubernetes 资源更改并对其运行 linting 规则的工具。识别和调试错误对象,并在策略和对象随时间变化时引导对象符合策略。Klint 帮助我们编码检查,并在团队需要采取行动时主动发出警报。 - [krane](https://github.com/appvia/krane) — Krane 是一个简单的 Kubernetes RBAC 静态分析工具。 它识别 K8s RBAC 设计中的潜在安全风险,并提出缓解建议。Krane 仪表板呈现当前的 RBAC 安全态势,并允许您浏览其定义。 - [kube-hunter](https://aquasecurity.github.io/kube-hunter/) — 猎寻 Kubernetes 集群中的安全弱点。 - [kube-lint](https://github.com/viglesiasce/kube-lint) — 一个具有可自定义规则集的 Kubernetes 资源 linter。您定义一份希望针对资源进行验证的规则列表,kube-lint 将针对这些资源评估这些规则。 - [kube-linter](https://github.com/stackrox/kube-linter) — KubeLinter 是一个静态分析工具,用于检查 Kubernetes YAML 文件和 Helm charts,以确保其中代表的应用程序遵循最佳实践。 - [kube-score](https://kube-score.com) — 对 Kubernetes 对象定义进行静态代码分析。 - [kubeconform](https://github.com/yannh/kubeconform) — 一个快速的 Kubernetes manifests 验证器,支持自定义资源。 它的灵感来源于,包含来自并设计保持接近 [Kubeval](https://analysis-tools.dev/tool/kubeval), 但具有以下改进: * 高性能:将验证并在多个 routines 上下载 manifests,在内存中缓存已下载的文件 * 可配置的远程或本地 schema 位置列表,实现对 Kubernetes 自定义资源 和离线验证能力的支持 * 默认使用 kubernetes-json-schema 项目维护的 schema 注册表的自更新分支——保证所有最近版本的 Kubernetes 具有最新的 schema。 - [KubeLinter](https://github.com/stackrox/kube-linter) — KubeLinter 是一个静态分析工具,用于检查 Kubernetes YAML 文件和 Helm charts,以确保其中代表的应用程序遵循最佳实践。 - **kubeval** :warning: — 验证您的 Kubernetes 配置文件并支持多个 Kubernetes 版本。

LaTeX

- **ChkTeX** :warning: — 一个 LaTeX 的 linter,可捕获 LaTeX 忽略的一些排版错误。 - [lacheck](https://www.ctan.org/pkg/lacheck) — 用于在 LaTeX 文档中查找常见错误的工具。 - [TeXLab](https://texlab.netlify.app) — TeX/LaTeX 的 Language Server Protocol 实现,包括 lint 功能。

Laravel

- **Enlightn** :warning: — 一个用于 Laravel 应用程序的静态和动态分析工具,提供建议以提高 Laravel 应用程序的性能、安全性和代码可靠性。包含 120 项自动检查。 - [larastan](https://github.com/larastan/larastan) — 为 Laravel 添加静态分析以提高开发人员的工作效率和代码质量。它是 PHPStan 的一个封装器。

Makefiles

- [checkmake](https://github.com/mrtazz/checkmake) — Makefiles 的 Linter / 分析器。 - [mbake](https://pypi.org/project/mbake/) — mbake 是一个 Makefile 格式化程序和 linter。它只花了 50 年! - [portlint](https://www.freebsd.org/cgi/man.cgi?query=portlint&sektion=1&manpath=FreeBSD+8.1-RELEASE+and+Ports) — FreeBSD 和 DragonFlyBSD port 目录的验证器。

Markdown

- [markdownlint](https://github.com/DavidAnson/markdownlint) — 基于 Node.js 的 Markdown/CommonMark 文件样式检查器和 lint 工具。 - [mdformat](https://mdformat.rtfd.io) — 符合 CommonMark 的 Markdown 格式化程序 - [mdl](https://github.com/mivok/markdownlint) — 用于检查 Markdown 文件并标记样式问题的工具。 - [mdsf](https://github.com/hougesen/mdsf) — 使用您喜欢的代码格式化程序格式化 markdown 代码块。 - [remark-lint](https://remark.js.org) — 用 JavaScript 编写的可插拔 Markdown 代码样式 linter。 - [textlint](https://textlint.github.io/) — textlint 是一个用 JavaScript 编写的开源文本 linting 实用程序。

Metalinter

- **ciocheck** :warning: — Linter、格式化程序和测试套件助手。作为一个 linter,它是 `pep8`、`pydocstyle`、`flake8` 和 `pylint` 的封装器。 - [flake8](https://github.com/PyCQA/flake8) — `pyflakes`、`pycodestyle` 和 `mccabe` 的封装器。 - [flakeheaven](https://pypi.org/project/flakeheaven/) — flakeheaven 是围绕 flake8 构建的 python linter,支持可继承和复杂的 toml 配置。 - **Go Meta Linter** :warning: — 并发运行 Go lint 工具并规范化它们的输出。对于新项目,请使用 `golangci-lint`。 - [goreporter](https://github.com/360EntSecGroup-Skylar/goreporter) — 并发运行多个 linter 并将其输出规范化为报告。 - **multilint** :warning: — `flake8`、`isort` 和 `modernize` 的封装器。 - [prospector](https://github.com/PyCQA/prospector) — `pylint`、`pep8`、`mccabe` 和其他工具的封装器。

Mobile

- [Android Lint](https://developer.android.com/studio/write/lint) — 对 Android 项目运行静态分析。 - **android-lint-summary** :warning: — 将多个项目的 lint 错误合并为一个输出,一次检查多个子项目的 lint 结果。 - [FlowDroid](https://github.com/secure-software-engineering/FlowDroid) — Android 应用程序的静态污点分析工具。 - **iblessing** :warning: — iblessing 是一个 iOS 安全漏洞利用工具包。它可用于逆向工程、二进制分析和漏洞挖掘。 - [Mariana Trench](https://mariana-tren.ch/) — 我们针对 Android 和 Java 应用程序的安全静态分析工具。Mariana Trench 分析 Dalvik 字节码,旨在大型代码库(数千万行代码)上快速运行。它可以在代码变更时发现漏洞,甚至在代码进入代码库之前。 - [Oversecured](https://oversecured.com) :copyright: — 用于 Android 和 iOS 应用程序的企业级漏洞扫描程序。它允许应用程序所有者和开发人员通过将 Oversecured 集成到开发过程中来保护每个新版本的移动应用程序。 - **paprika** :warning: — 一个用于检测分析的 Android 应用程序中某些代码味道的工具包。 - **qark** :warning: — 用于查找多个与安全相关的 Android 应用程序漏洞的工具。 - [redex](https://fbredex.com) — Redex 提供了一个用于读取、写入和分析 .dex 文件的框架,以及一组使用此框架来改进字节码的优化传递。由 Redex 优化的 APK 应该更小且更快。

Nix

- [deadnix](https://github.com/astro/deadnix) — 扫描 Nix 文件中的死代码(未使用的变量绑定) - [statix](https://github.com/nerdypepper/statix) — Nix 编程语言的 lint 和建议工具。“statix check”突出显示 Nix 代码中的反模式。“statix fix”可以修复多个此类出现的情况。

Node.js

- [lockfile-lint](https://github.com/lirantal/lockfile-lint) — Lint 一个 npm 或 yarn lockfile 以分析和检测安全问题 - **njsscan** :warning: — 一个静态应用程序测试 (SAST) 工具,可以使用来自 libsast 的简单模式匹配器和语法感知的语义代码模式搜索工具 semgrep 在您的 node.js 应用程序中找到不安全的代码模式。 - **NodeJSScan** :warning: — 一个由 libsast 和 semgrep 支持的 Node.js 应用程序静态安全代码扫描程序,它构建在 njsscan cli 工具之上。它具有一个 UI,提供有关应用程序安全状态的各种仪表板。 - [standard](http://standardjs.com) — 一个检查 Javascript Styleguide 问题的 npm 模块。

Packages

- [composer-dependency-analyser](https://github.com/shipmonk-rnd/composer-dependency-analyser) — 快速检测 composer 依赖问题。 * 💪 强大:检测未使用的、被遮蔽的和错位的 composer 依赖 * ⚡ 高性能:2 秒内扫描 15,000 个文件! * ⚙️ 可配置:通过 PHP 配置进行细粒度忽略 * 🕸️ 轻量级:无 composer 依赖 * 🍰 易于使用:第一次尝试无需配置 * ✨ 兼容:PHP >= 7.2 - [lintian](https://wiki.debian.org/Lintian) — Debian 软件包的静态分析工具。 - [rpmlint](https://github.com/rpm-software-management/rpmlint) — 用于检查 rpm 软件包中常见错误的工具。

Prometheus

- [promformat](https://github.com/facetoe/promformat) — Promformat 是用 Python 编写的 PromQL 格式化程序。 - [promval](https://github.com/facetoe/promval) — 用 Python 编写的 PromQL 验证器。它可用于验证 PromQL 表达式是否按预期编写。

Protocol Buffers

- [buf](https://buf.build) — 提供一个 CLI linter,用于强制执行良好的 API 设计选择和结构 - [protolint](https://github.com/yoheimuta/protolint) — 可插拔的 linter 和修复工具,用于强制执行 Protocol Buffer 样式和约定。

Puppet

- [metadata-json-lint](https://github.com/voxpupuli/metadata-json-lint) — 用于检查 Puppet metadata.json 文件有效性的工具。

Rails

- [Active Record Doctor]() — 在数据库问题波及生产环境之前将其识别出来。 - [Bullet](https://github.com/flyerhzm/bullet) — 帮助消除 N+1 查询和未使用的预加载。 - [DatabaseConsistency](https://github.com/djezzzl/database_consistency) — 用于避免由于数据库模式与应用程序模型之间的不一致和低效率而导致各种问题的工具。 - [dawnscanner](https://github.com/thesp0nge/dawnscanner) — 一个针对 ruby 编写的 Web 应用程序的静态分析安全扫描程序。它支持 Sinatra、Padrino 和 Ruby on Rails 框架。 - [ERB::Formatter](https://github.com/nebulab/erb-formatter) — 快速而精确地格式化 ERB 文件。 - [Skunk](https://github.com/fastruby/skunk) — Ruby 代码的 SkunkScore 计算器——找出最复杂且没有测试覆盖的代码! - [Traceroute](https://github.com/amatsuda/traceroute) — 一个 Rake task gem,可帮助您为 Rails 3+ 应用程序查找未使用的路由和控制器操作。

Security/SAST

- [AzSK](https://azsk.azurewebsites.net/) — Azure 安全 DevOps 工具包 提供安全 IntelliSense、安全验证测试、CICD 扫描漏洞、合规问题以及基础设施即代码中的基础设施配置错误。通过 ARM 支持 Azure。 - [brakeman](https://brakemanscanner.org) — 一个针对 Ruby on Rails 应用程序的静态分析安全漏洞扫描程序。 - [Cloud (IaC) Security for JetBrains IDEs](https://plugins.jetbrains.com/plugin/25413-cloud-iac-security) — JetBrains IDEs 的 Cloud (IaC) Security 插件。基于 Docker 镜像/构建安全最佳实践、Kubernetes Pod Security Standards 以及 NSA/CISA Kubernetes Hardening Guidance 中的 50+ 条规则,对 Docker & Kubernetes IaC 执行实时检查。 - [Code Pathfinder](https://codepathfinder.dev) — 一个开源安全套件,旨在将结构代码分析与 AI 驱动的漏洞检测相结合。专为高级结构搜索、提取洞察、发现代码中的漏洞而构建。 - [Credential Digger](https://github.com/SAP/credential-digger) — Credential Digger 是一个 GitHub 扫描工具,用于识别硬编码凭据(密码、API 密钥、密钥、令牌、个人信息等),并通过一个名为 [Password Model](https://huggingface.co/SAPOSS/password-model) 的机器学习模型过滤误报数据。此扫描程序能够以较低的误报率检测密码和非结构化令牌。 - [Datree](https://datree.io/) — 一个 CLI 工具,用于通过确保 manifests 和 Helm charts 遵循最佳实践以及您组织的策略,来防止 Kubernetes 配置错误 - [detect-secrets](https://github.com/Yelp/detect-secrets) — 一种企业友好的方式,用于检测和防止代码中的机密。 它通过针对启发式制作的正则表达式运行定期 diff 输出来实现这一点,以确定是否提交了任何新的机密。这种方式避免了挖掘所有 git 历史记录的开销,以及每次都需要扫描整个存储库的需要。 - [Dockle](https://github.com/goodwithtech/dockle) — 用于安全的容器镜像 Linter,有助于构建最佳实践 Docker 镜像。扫描 Docker 镜像的安全漏洞和 CIS 基准合规性。检查机密、凭据暴露和安全最佳实践。提供多个严重性级别(FATAL、WARN、INFO)并支持各种输出格式以便进行 CI/CD 集成。 - **Enlightn** :warning: — 一个用于 Laravel 应用程序的静态和动态分析工具,提供建议以提高 Laravel 应用程序的性能、安全性和代码可靠性。包含 120 项自动检查。 - [GitGuardian ggshield](https://www.gitguardian.com/ggshield) — ggshield 是一个在您的本地环境或 CI 环境中运行的 CLI 应用程序,可帮助您检测超过 350 种类型的机密,以及影响您代码库的其他潜在安全漏洞或策略违规。 - [Gitleaks](https://github.com/zricethezav/gitleaks) — 一个 SAST 工具,用于在 git 仓库中检测硬编码机密,如密码、api 密钥和令牌。 - [gokart](https://github.com/praetorian-inc/gokart) — Golang 安全分析,专注于最大限度地减少误报。它能够追踪变量和函数参数的来源,以确定输入源是否安全。 - [Grype](https://github.com/anchore/grype) — 用于容器镜像和文件系统的漏洞扫描程序。由 Anchore 开发,它扫描容器镜像、目录和档案中的已知漏洞。支持多种镜像格式、SBOM 集成和 VEX (Vulnerability Exploitability eXchange) 以进行准确的漏洞评估。与各种漏洞数据库配合使用,并提供详细的报告。 - **HasMySecretLeaked** :warning: :copyright: — HasMySecretLeaked 是 GitGuardian 的一个项目,旨在帮助个人和组织在 2000 万个泄露的机密中搜索,以验证其开发人员机密是否在 GitHub 项目的公共仓库、gists 和 issues 中泄露。 - **iblessing** :warning: — iblessing 是一个 iOS 安全漏洞利用工具包。它可用于逆向工程、二进制分析和漏洞挖掘。 - [kani](https://github.com/model-checking/kani) — Kani Rust Verifier 是一个 Rust 的位精确模型检查器。 Kani 对于验证 Rust 中的不安全代码块特别有用, 在这种代码块中,“unsafe 超能力”未受编译器检查。 Kani 验证: * 内存安全(例如,空指针解引用) * 用户指定的断言(即 assert!(...)) * 不存在 panic(例如,对 None 值进行 unwrap()) * 不存在某些类型的意外行为(例如,算术溢出) - [kics](https://kics.io/) — 在您的 infrastructure-as-code 中发现安全漏洞、合规问题和基础设施配置错误。支持 Terraform、Kubernetes、Docker、AWS CloudFormation 和 Ansible - [kube-hunter](https://aquasecurity.github.io/kube-hunter/) — 猎寻 Kubernetes 集群中的安全弱点。 - [lockfile-lint](https://github.com/lirantal/lockfile-lint) — Lint 一个 npm 或 yarn lockfile 以分析和检测安全问题 - **LunaSec** :warning: — 开源 AppSec 平台,会在下一次发生 Log4Shell 或 node-ipc 等漏洞时自动通知您。在集中式服务中跟踪您的依赖项和构建。 - [Malcat](https://malcat.fr/) :copyright: — 用于恶意软件分析和二进制文件检查的十六进制编辑器和反汇编程序。支持 50 多种文件格式和多种 CPU 架构(x86/x64、MIPS、.NET、Python、VB p-code)。具有快速分析、嵌入式文件提取、Yara 签名扫描、异常检测和 Python 脚本等功能。专为恶意软件分析师、SOC 操作员、事件响应者和 CTF 玩家设计。 - **njsscan** :warning: — 一个静态应用程序测试 (SAST) 工具,可以使用来自 libsast 的简单模式匹配器和语法感知的语义代码模式搜索工具 semgrep 在您的 node.js 应用程序中找到不安全的代码模式。 - **NodeJSScan** :warning: — 一个由 libsast 和 semgrep 支持的 Node.js 应用程序静态安全代码扫描程序,它构建在 njsscan cli 工具之上。它具有一个 UI,提供有关应用程序安全状态的各种仪表板。 - [OSV-Scanner](https://osv.dev/) — 用 Go 编写的漏洞扫描程序,使用 OSV.dev 提供的数据。由 Google 开发,用于扫描多种语言和包管理器的依赖项中的已知漏洞。支持容器扫描、许可证扫描和引导式补救。使用 lockfiles、SBOMs 和容器镜像来识别安全问题。 - [Oversecured](https://oversecured.com) :copyright: — 用于 Android 和 iOS 应用程序的企业级漏洞扫描程序。它允许应用程序所有者和开发人员通过将 Oversecured 集成到开发过程中来保护每个新版本的移动应用程序。 - [OWASP Noir](https://owasp-noir.github.io/noir/) — 攻击面检测器,通过静态分析识别端点。 - [pip-audit](https://github.com/pypa/pip-audit) — 用于扫描 Python 软件包中已知漏洞的工具。由 Python Packaging Authority (PyPA) 开发,并由 Trail of Bits 和 Google 支持。扫描 Python 环境和 requirements 文件以识别易受攻击的软件包并建议补救措施。支持 GitHub Actions、pre-commit hooks 和多种漏洞服务集成。 - [PT Application Inspector](https://www.ptsecurity.com) :copyright: — 识别代码缺陷并检测漏洞以防止 Web 攻击。通过展示可能的利用来演示远程代码执行。 - [Qualys Container Security](https://www.qualys.com/apps/container-security) :copyright: — 容器原生应用程序保护,可提供容器化应用程序的可见性和控制力。 - **QuantifiedCode** :warning: — 自动化代码审查和修复。它帮助您跟踪软件项目中的问题和指标,并且可以轻松扩展以支持新类型的分析。 - [Safety](https://safetycli.com/) — Python 依赖漏洞扫描程序,旨在通过检测具有已知漏洞的软件包来增强软件供应链安全性。根据已知安全漏洞数据库检查 Python 依赖项并提供详细报告。支持 CI/CD 集成和多种输出格式。 - [scorecard](https://github.com/ossf/scorecard) — Security Scorecards - 开源的安全健康指标 - [Steampunk Spotter](https://steampunk.si/spotter/) :copyright: — Ansible Playbook 扫描工具,可分析您的 playbook 并提供建议。 - [Symfony Insight](https://insight.symfony.com/) :copyright: — 检测安全风险,发现错误并为 PHP 项目提供可操作的指标。 - [tfsec](https://github.com/tfsec/tfsec) — Terraform 静态分析工具,通过在构建时检查云配置错误来防止潜在的安全问题,并直接与 HCL 解析器集成以获得更好的结果。检查是否违反 AWS、Azure 和 GCP 安全最佳实践建议。 - [trufflehog](https://trufflesecurity.com) — 到处查找凭据 TruffleHog 是一个开源 secret-scanning 引擎,可解决整个公司技术栈中暴露的机密。 - [Tsunami Security Scanner](https://github.com/google/tsunami-security-scanner) — 一个通用网络安全扫描程序,具有可扩展的插件系统,用于以高置信度检测严重的高危 RCE 类漏洞。可以添加自定义检测器以查找漏洞(例如,开放的 API)。

Smart Contracts

- [mythril](https://github.com/ConsenSys/mythril) — 一个开箱即用的符号执行框架,可用于自动查找和利用智能合约中的漏洞。 - [MythX](https://mythx.io) :copyright: — MythX 是一个易于使用的分析平台,集成了多种分析方法,如模糊测试、符号执行和静态分析,以高精度查找漏洞。可以与 Remix 或 VSCode 等工具链集成,或从命令行调用。 - [slither](https://github.com/trailofbits/slither) — 静态分析框架,运行一套漏洞检测器,打印有关合约详细信息的视觉信息,并提供 API 以轻松编写自定义分析。 - [solhint](https://protofire.github.io/solhint) — Solhint 是由 https://protofire.io 创建的一个开源项目。其目标是为 Solidity 代码提供 linting 实用程序。 - [solium](https://ethlint.readthedocs.io/en/latest) — Solium 是一个 linter,用于识别和修复 Solidity 智能合约中的样式和安全问题。

Support

- [LibVCS4j](https://github.com/uni-bremen-agst/libvcs4j) — 一个 Java 库,允许现有工具通过为不同的版本控制系统和 issue tracker 提供通用 API 来分析软件系统的演变。 - [RefactorFirst](https://github.com/jimbethancourt/RefactorFirst) — 识别并确定您应该首先重构的 Java 代码库中的上帝类 和高耦合类的优先级。 - [Violations Lib](https://github.com/tomasbjerre/violations-lib) — 用于解析静态代码分析报告文件的 Java 库。被一堆 Jenkins、Maven 和 Gradle 插件使用。

Template-Languages

- [ember-template-lint](https://github.com/ember-template-lint/ember-template-lint) — Ember 或 Handlebars 模板的 linter。 - [haml-lint](https://github.com/sds/haml-lint) — 用于编写干净一致的 HAML 的工具。 - [slim-lint](https://github.com/sds/slim-lint) — 用于分析 Slim 模板的可配置工具。 - [yamllint](https://yamllint.readthedocs.io) — 检查 YAML 文件的语法有效性、键重复和美观问题,例如行长度、尾随空格和缩进。

Terraform

- [GitGuardian ggshield](https://www.gitguardian.com/ggshield) — ggshield 是一个在您的本地环境或 CI 环境中运行的 CLI 应用程序,可帮助您检测超过 350 种类型的机密,以及影响您代码库的其他潜在安全漏洞或策略违规。 - [kics](https://kics.io/) — 在您的 infrastructure-as-code 中发现安全漏洞、合规问题和基础设施配置错误。支持 Terraform、Kubernetes、Docker、AWS CloudFormation 和 Ansible - **shish** :warning: — 一个专为开发人员和安全团队设计的轻量级静态代码分析器。它允许您使用类似于 sed 但针对代码的直观 DSL 来分析和转换源代码。

Translation

- [dennis](https://github.com/willkg/dennis) — 一组用于处理 PO 文件的实用程序,以简化开发并提高质量。

Vue.js

- [HTML-Validate](https://html-validate.org/) — 离线 HTML5 验证器。 - **Vetur** :warning: — VS Code 的 Vue 工具,由 vls (vue language server) 提供支持。Vetur 支持格式化嵌入式 HTML、CSS、SCSS、JS、TypeScript 等。Vetur 只有“整个文档格式化程序”,无法格式化任意范围。

Writing

- **After the Deadline** :warning: — 拼写、样式和语法检查器。 - **alex** :warning: — 捕捉不敏感、不体面的写作 - [codespell](https://github.com/codespell-project/codespell) — 检查代码中的常见拼写错误。 - [languagetool](https://languagetool.org) — 25 种以上语言的样式和语法检查器。它发现许多简单的拼写检查器无法检测到的错误。 - [misspell-fixer](https://github.com/vlajos/misspell-fixer) — 用于修复源代码中常见拼写错误和打字错误的快速工具。 - [Misspelled Words In Context](https://jwilk.net/software/mwic) — 一个将可能的拼写错误分组并在其上下文中显示的拼写检查器。 - [proselint](https://github.com/amperser/proselint) — 专注于写作风格而非语法的英语散文 linter。 - [vale](https://vale.sh) — 一个语法感知的 prose linter,构建时考虑了速度和可扩展性。 - **write-good** :warning: — 一个专注于消除“冗余词”的 linter。

YAML

- [Spectral](https://stoplight.io/open-source/spectral) — 一个灵活的 JSON/YAML linter,开箱即用支持 OpenAPI v2/v3 和 AsyncAPI v2。 - [yamllint](https://yamllint.readthedocs.io) — 检查 YAML 文件的语法有效性、键重复和美观问题,例如行长度、尾随空格和缩进。

git

- [commitlint](https://commitlint.js.org) — 检查您的提交消息是否符合 conventional commit 格式 - [GitGuardian ggshield](https://www.gitguardian.com/ggshield) — ggshield 是一个在您的本地环境或 CI 环境中运行的 CLI 应用程序,可帮助您检测超过 350 种类型的机密,以及影响您代码库的其他潜在安全漏洞或策略违规。 - **HasMySecretLeaked** :warning: :copyright: — HasMySecretLeaked 是 GitGuardian 的一个项目,旨在帮助个人和组织在 2000 万个泄露的机密中搜索,以验证其开发人员机密是否在 GitHub 项目的公共仓库、gists 和 issues 中泄露。 ## 更多集合 - [Clean code linters](https://github.com/collections/clean-code-linters) — github collections 中的 linter 集合 - [Code Quality Checker Tools For PHP Projects](https://github.com/collections/code-quality-in-php) — github collections 中的 PHP linter 集合 - [go-tools](https://github.com/dominikh/go-tools) — 用于处理 Go 代码的工具和库集合,包括 linter 和静态分析 - [linters](https://github.com/mcandre/linters) — 静态代码分析简介 - [OWASP Source Code Analysis Tools](https://owasp.org/www-community/Source_Code_Analysis_Tools) — 由 Open Web Application Security Project 维护的工具列表 - [php-static-analysis-tools](https://github.com/exakat/php-static-analysis-tools) — 有用的 PHP 静态分析工具的审核列表 - [AppSec Santa — SAST Tools](https://appsecsanta.com/sast-tools) — 30 多种静态分析安全测试工具的独立比较,包含功能、定价和替代方案 - [Wikipedia](http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis) — 静态代码分析工具列表。 ## 许可证 [![CC0](https://i.creativecommons.org/p/zero/1.0/88x31.png)](https://creativecommons.org/publicdomain/zero/1.0/) 在法律允许的范围内,[Matthias Endler](https://endler.dev) 已放弃本作品的所有版权及其相关或邻接权利。 用于格式化和显示该内容的底层源代码获得 MIT 许可证授权。 标题图片 [Designed by Freepik](https://www.freepik.com)。
标签:Awesome List, ESC1, Linter, pptx, SAST, SOC Prime, 云安全监控, 代码审查, 多模态安全, 多语言, 安全扫描, 工具链, 开发工具, 开源, 恶意代码分析, 时序注入, 格式化工具, 盲注攻击, 通知系统, 配置文件, 防御加固, 静态分析