写点什么

7 个顶级静态代码分析工具

  • 2021-02-19
  • 本文字数:2416 字

    阅读完需:约 8 分钟

7个顶级静态代码分析工具

静态代码分析或源代码分析是指使用静态代码分析工具对软件的“静态”(不运行的) 代码进行分析的一种方法,找出代码中潜在的漏洞。静态代码分析器检查源代码,找出特定的漏洞,并检查代码是否符合各种编码标准。

为什么要进行静态代码分析?


  • 在执行代码之前获取代码洞见;

  • 与动态分析相比,执行速度更快;

  • 可以对代码质量维护进行自动化;

  • 在早期阶段 (尽管不是所有阶段) 可以自动检索 bug;

  • 在早期阶段可以自动发现安全问题;

  • 如果你在使用带有静态分析器的 IDE(例如遵循 PEP8 的 Pycharm),那你已经在“船”上了。


在知道了什么是静态代码分析之后,接下来就有必要了解一下市场上有哪些好用的静态代码分析工具。废话不多说,让我们来看看现在比较流行的静态代码分析工具。

DeepSource


DeepSource 可以帮你在代码评审期间自动发现并修复代码中的问题。它可以与 Bitbucket、GitHub 或 GitLab 帐户集成。这个工具可以找出反模式、bug 风险、性能问题。DeepSource 还会生成并跟踪各种指标(例如依赖项计数、文档覆盖率等)。分析器先发现文件级别的问题 (如在特定位置发现反模式),并进一步发现代码库级别的问题 (如发现有些依赖项没有安装)。DeepSource Autofix 会为检测到的问题提出修复建议,并创建一个修复的拉取请求。


https://deepsource.io


关键特性


  • 单个文件配置;

  • 对拉取请求进行质量检查;问题频谱;

  • 维护活跃度分析器;

  • 可以详细了解每一个问题;

  • 跟踪代码指标;

  • 定制分析,可以忽略掉一些问题;

  • 分析器可以为经常发生的问题提出修复建议,如果允许的话,它们还可以创建修复过的拉取请求;

  • 对每个代码提交和拉取请求进行 Black、YAPF、Go fmt 等代码格式化。不需要进行 CI 设置。


缺点


不支持 PHP。


支持的语言


Python、JavaScript、Go、Ruby、Java、Docker、SQL、Terraform、Shell,以及 TestIdentify 和修复 bug 风险、提交代码中的反模式、性能问题和安全缺陷。


定价


开源项目、学生和非营利组织可以免费使用。付费用户从 12 美元 / 月起算。

SonarQube


SonarQube 是一种很流行的静态分析工具,用于持续检查代码库的代码质量和安全性,并在代码评审期间指导开发团队。SonarQube 可与 CI/CD 集成,进行自动化代码检查。它还提供了质量管理工具帮你主动纠正错误:IDE 集成、Jenkins 集成和代码评审工具。


https://www.sonarqube.org


关键特性


  • 多语言支持;

  • 安全性分析;

  • 发布质量代码;

  • 可维护性;

  • 可以识别蹊跷的问题。


缺点


  • 并不是每个 IDE 都支持 SonarQube;

  • 不能选择忽略团队不需要去修复的问题。


支持的语言


25 种以上的编程语言,包括 Java、C#、JavaScript、TypeScript、C/C++、COBOL 及其他。


定价


社区版是免费和开源的。商业版起步价为 120 欧元。

Codacy


Codacy()是一个静态分析工具,可以帮助开发人员处理技术债务并提高代码质量。Codacy 监控每一次代码提交和 PR 的代码质量。你可以用它来加强代码质量标准,加强安全实践,并节省代码评审时间。


https://www.codacy.com


关键特性


  • 代码评审自动化;

  • 代码质量分析;

  • 安全代码分析;

  • 集群安装 / 多个实例。


缺点


  • 缺乏与其他 SaaS 服务集成 (Sonatype、Blackduck、AWS API 网关的 API QOS 指标或 UI/E2E SaaS 测试服务) 的能力;

  • 无法加密项目信息或限制对源代码的访问;

  • 社区相对较小。


支持的语言


30 多种语言,包括 Elixir、Go、Java、JavaScript、JSON、Kotlin、Python、Ruby、Scala、Swift、TypeScript 等等。


定价


对开源免费,付费用户起步价为 15 美元 / 月。

DeepScan


DeepScan 是一个支持 JavaScript、TypeScript、React 和 Vue.js 的静态分析工具。你可以使用 DeepScan 来查找部分运行时错误和质量问题,而不只是编码风格问题。将 DeepScan 与你的 GitHub 代码库集成起来,以此来发现项目的质量问题。


https://deepscan.io


关键特性


  • 缺陷跟踪;

  • 自动化构建;

  • 代码评审;

  • 协作;

  • 持续集成。


缺点


有限的语言支持。


支持的语言


JavaScript、TypeScript、React 和 Vue.js。


定价


对开源免费,付费用户起步价为 9 美元 / 月。

Embold


Embold 是一个通用的静态分析器,可以帮助开发人员在关键代码问题成为障碍之前把它们找出来。它是一个有效诊断、转换和维护应用程序的得力工具。它集成了人工智能和机器学习技术,可以找出一级问题,提供最佳解决方案,并在必要时重构应用程序。你可以在已有的 DevOps 技术栈中使用它,可以在内部使用,也可以在私有云和公共云中使用它。


https://embold.io


关键特性


  • 直观的 UI;

  • 更深入和更快的代码检查;

  • 智能地提高性能;

  • 无缝集成。


缺点


价格相对较高。


支持的语言


Java、C、C++、C#、Objective-C、TypeScript、JavaScript、Python、PHP、Go、Kotlin、Solidity、SQL。


定价


对开源免费,付费用户每月 10 欧元。

Veracode


Veracode 是一种流行的静态代码分析工具。它只针对安全问题,跨管道执行代码检查,以便发现安全漏洞,并将 IDE 扫描、管道扫描和策略扫描作为其服务的一部分。它会创建用于审计的代码评估,作为程序的一部分。


https://www.veracode.com/products/binary-static-analysis-sast


关键特性


  • 编码时的安全性问题反馈;

  • 在管道中快速获得结果;

  • 令人满意的审计能力;

  • 不需要调整就可以获得高精确度;

  • 专注于修复问题。


缺点


  • 不支持自定义扫描规则;

  • 用户体验不是很好。


支持的语言


Java、.Net、JavaScript、Scala、Python、PHP、Ruby on Rails、ColdFusion、Swift、C/C++、COBOL、Visual Basic 6、RPG,等等。


定价


基于项目的规模定价,你可以在官网上提交表单来获取报价。

Reshift


Reshift 是一个基于 SaaS 的软件平台,它无缝地集成到软件开发工作流中,让企业可以持续地部署安全的软件产品,而不会减慢它们的速度。Reshift 减少了查找和修复漏洞、识别数据泄露的潜在风险以及帮助软件公司实现合规性和法规要求的成本和时间。


https://www.reshiftsecurity.com


关键特性


  • 快速配置;

  • 安全性扫描;

  • 安全性职责。


缺点


不支持 Java 以外的语言。


支持的语言


Java


定价


对开源免费,付费用户起步价是每月 99 美元。


原文链接:


https://dzone.com/articles/top-7-static-code-analysis-tools

2021-02-19 09:0140906

评论 1 条评论

发布
用户头像
腾讯的Xcheck可以了解一下,能力极强!
2021-10-22 23:50
回复
没有更多了
发现更多内容

架构1期 第十周作业

haha

架构作业--第十周

Nick~毓

微服务手册:API接口9个生命节点,构建全生命周期管理

互联网应用架构

微服务 APi设计 API网关

架构师训练营 - 第十周作业

一个节点

极客大学架构师训练营

架构师训练营第 1 期 -- 第十周学习总结

发酵的死神

极客大学架构师训练营

极客时间架构师训练营 1 期 - 第 10 周总结

Kaven

架构师训练营第十周作业

架构师训练营第十周总结

吴传禹

极客大学架构师训练营

架构师训练营 - 第十周总结

一个节点

极客大学架构师训练营

极客时间架构师培训 1 期 - 第 10 周作业

Kaven

架构师入门学习之感悟六

笑春风

Python进阶——什么是迭代器?

Kaito

Python

第五周作业

Jack

第10周 作业1

Yangjing

极客大学架构师训练营

互联网络上遇到数据延迟维护清算中取不出该怎么解决?

Geek_a6658e

第六周作业

Jack

【第十周】模块分解

云龙

MYSQL数据类型

少林寺三毛

MySQL

架构师训练营第 1 期 week10

张建亮

极客大学架构师训练营

【第九周】课后作业

云龙

区块链将如何改变住房市场

CECBC

区块链 住房记录

模块拆分第十周作业「架构师训练营第 1 期」

天天向善

深入掌握底层源码常见的 CAS 原子编程

马丁玩编程

架构 CAS

南海将打造“区块链+”金融科技产业高地

CECBC

区块链 金融

哪些数据将成为区块链系统的关键数据?

CECBC

区块链

架構師訓練營 week10 總結

ilake

【第九周】性能优化(三)

云龙

架構師訓練營 week10 作業

ilake

Logstash使用

Rayzh

ELK

第10周 作业2

Yangjing

极客大学架构师训练营

动态规划解决爬楼梯算法,彻底搞懂AppStore证书体系、彻底搞懂控制反转IoC,依赖注入DIP, John 易筋 ARTS 打卡 Week 28

John(易筋)

ARTS 打卡计划 动态规划解决爬楼梯 AppStore证书体系 控制反转IOC 依赖注入DIP

7个顶级静态代码分析工具_语言 & 开发_Saif Sadiq_InfoQ精选文章