写点什么

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:0143301

评论 1 条评论

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

如何实现绿电的"秒级"匹配?西格电力AI驱动下的供需动态优化方案

西格电力

光伏发电 可再生能源 能源可再生 绿电直连 可再生能源发电

财务报表分析软件系统开发

北京木奇移动技术有限公司

数据分析 软件外包公司 财报分析

区块链 Web3 项目的开发费用

北京木奇移动技术有限公司

区块链开发 软件外包公司 web3开发

Agentic AI基础设施实践经验系列(八):Agent应用的隐私和安全

亚马逊云科技 (Amazon Web Services)

人工智能

Agentic AI基础设施实践经验系列(八):Agent应用的隐私和安全

亚马逊云科技 (Amazon Web Services)

穿越沙海:中国AI的中东远征

脑极体

AI

让 Agent 告别低效工具调用:用代码执行重构 MCP 工作流,节省 90% 的上下文开销

莫尔索

智能体 agent Agents MCP MCP协议

大数据-152 Apache Druid 集群模式 [下篇] 低内存集群实操:JVM/DirectMemory与启动脚本

武子康

Java 大数据 分布式 Druid Apache Druid

企业即时通讯平台:撬动企业数字化的核心支点

BeeWorks

即时通讯 IM 私有化部署

低延迟直播全攻略:从协议选型到海外直播系统搭建部署的完整技术栈

山东布谷网络科技

海外直播平台开发 直播APP延迟 直播源码解决方案 国际版直播平台源码

输入法与思维的边界:一个人重塑输入法的旅程

Savo_Shen

开源 输入法 双拼 双拼输入法

小伙伴们学习 C#/.NET 相关技术栈的学习心得和路线

追逐时光者

C# .net

代码江湖:一个“小功能”的需求引发的血案!

六边形架构

程序员 日常工作 需求开发

百度慧播星开放罗永浩同款数字人技术,商家转化率提升超63%

极客天地

如何提升 LLMs 处理表格的准确率?一项针对 11 种格式的基准测试

Baihai IDP

程序员 AI LLM 检索增强生成 表格数据

共同探讨AI技术前沿趋势“2026中原国际人工智能展”定档4月份

AIOTE智博会

人工智能展会 人工智能博览会 人工智能展 郑州人工智能展

告别手动PPT:探秘海外舆情分析平台的自动化报告生成与可视化

沃观Wovision

舆情分析 海外舆情 出海舆情 海外舆情平台

使用CDN时如何防劫持

天翼云开发者社区

CDN

谷歌起诉网络犯罪团伙Smishing Triad,揭露大规模钓鱼攻击

qife122

网络安全 网络安全网络犯罪

Spring Boot 进阶:企业级性能与可观测性指南

程序猿DD

Spring Boot

如何构建数据驱动的 Agent 评估体系,解决生产环境 Agent 可靠性问题

莫尔索

agent Agents 智能体评估 Agent 评估 Agent Skills

“好话坏话”自动分?揭秘出海舆情监测网站的情感分析功能

沃观Wovision

舆情分析 舆情监测 海外舆情监控 海外舆情监测

Tavus发布多模态数字伙伴PALs,能看、听、推理;李飞飞团队推出首款商用世界模型World Labs Marble丨日报

RTE开发者社区

服装门店出入口推荐哪款AI算法RFID门禁?

斯科信息

AI算法RFID门禁 RFID智能门禁

AI智能体 - 使用工具模式 Function Calling

Hernon AI

AI智能体 AI应用开发 AI开发框架 AI开发方法论

使用CDN后如何更新同名文件

天翼云开发者社区

CDN

优秀的海外舆情监测平台一般具备什么特点?如何筛选?

沃观Wovision

舆情分析 舆情监测 海外舆情监测 舆情监测平台

好消息,.NET 10 正式发布,更智能、更安全、更高性能的统一开发平台!

追逐时光者

C# .net 微软

如何构建绿电直连"神经末梢"?西格电力感知层核心技术与实战方案

西格电力

光伏产业 可再生能源 风电 绿电直连 低碳经济

探索 Java 中的新 HTTP 客户端

程序猿DD

股票市场财报分析系统的开发

北京木奇移动技术有限公司

软件外包公司 财报分析 股票分析

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