文章图片
静态代码分析 , 或称为源代码分析 , 是一种将静态代码分析工具 , 以非运行的方式运用到软件源代码上 , 以审查其是否符合既定的编码标准 , 进而发现各种潜在漏洞的方法 。 通常 , 静态分析可以为我们带来如下好处:
- 在代码被执行之前 , 获取对其的深入洞见
- 与动态分析相比 , 静态分析的执行速度更快
- 可自动化维护代码的质量
- 能够在早期阶段自动搜索出部分错误(尽管不是全部)
- 可以在早期阶段自动发现各种安全问题
1.DeepSource
DeepSource可帮助您在代码审查期间 , 自动查找并修复代码中的各类问题 。 在使用过程中 , 它可以与用户的Bitbucket、GitHub或GitLab帐户相集成 。 该工具可以查找反模式(anti-patterns)、Bug风险、以及由性能引发的各种问题 。 同时 , DeepSource还会生成并跟踪例如:依赖项数量、文档覆盖率等相关指标 。
该分析器既可以运行在文件级别 , 在特定位置发现反模式;又可以运行在存储库级别 , 发现某些依赖项尚未安装等深层次问题 。 此外 , DeepSource的Autofix还会为发现的问题提供修复建议 , 并根据更改建议创建拉取式请求 。
主要特征
- 提供单个文件配置
- 对拉取式请求进行质量审查
- 能够覆盖广泛的问题
- 提供主动且可维护的分析器
- 可详细解析每个问题
- 可跟踪代码的各项指标
- 可通过自定义分析 , 选择性忽略某些问题
- 可针对常见问题提出修复建议 , 如适合 , 可根据更改建议创建拉取式请求
- 无需设置CI , 即可在每一次提交和拉取请求上 , 运行Black、YAPF、Go fmt等代码格式化文件 。
- 不支持PHP语言
- 支持Python、JavaScript、Go、Ruby、Java、Docker、TestIdentify
- 能够在每一次提交和拉取请求中覆盖SQL、Terraform、Shell
- DeepSource免费提供给开源组织、学生组织、以及非营利组织使用 。 其付费计划从每用户、每月12美元起 , 具体请参见--https://deepsource.io/pricing/?utm_source=dzone 。
作为一种流行的静态分析工具 , SonarQube可用于持续审查代码库中的代码质量和安全性 , 并在代码审查期间给予开发团队相应的指导 。 同时 , 它也可被用于带有CI/CD集成的自动化代码审查中 。 此外 , SonarQube还通过提供质量管理工具 , 来主动协助IDE集成、Jenkins集成、持续集成服务器、以及确保代码查看工具的正确设置 。
主要特征
- 支持多语言
- 提供安全分析
- 确保代码的发布质量
- 具有可维护性
- 可识别出较为棘手的问题
- 并非所有的IDE都能够支持SonarQube
- 无法为那些团队暂时绕开 , 或暂缓解决的问题提供忽略选项
- 支持包括Java、C#、JavaScript、TypeScript、C/C ++、以及COBOL等25种以上的编程语言
- SonarQube的社区版是免费和开源的 。 其商业版许可证的售价为120欧元起 , 具体请参见--https://www.sonarsource.com/plans-and-pricing/ 。
Codacy是一种静态分析工具 , 可以帮助开发人员解决技术问题 , 并提高代码质量 。 Codacy在每一次提交和PR(产品迭代)中监视代码质量 。 您可以用它来执行代码质量标准 , 执行安全性实践 , 并节省代码审查的时间 。
主要特征
- 提供代码审查的自动化
- 提供代码质量分析
- 支持代码安全性分析
- 支持集群安装与多实例
- 缺乏与某些SaaS服务的集成 , 其中包括:Sonatype、Blackduck、AWS API网关的API QOS各项指标、以及UI/E2E的各种Saas测试服务
- 无法对项目的相关信息进行加密 , 或是限制对UI中的源代码进行访问
- 其拥有的社区相对较小
- 支持包括Elixir、Go、Java、JavaScript、JSON、Kotlin、Python、Ruby、Scala、Swift、TypeScript等30多种语言 。
- Codacy具有免费的开源版本 。 其高级版本的起价为每用户、每月15美元 , 具体请参见--https://www.codacy.com/pricing 。
DeepScan是一款业界技术领先的静态分析工具 。 它能够方便开发人员查找运行时(runtime)中的各项错误与质量问题 , 而不仅仅停留在编码规则的层面上 。 通过将DeepScan与目标GitHub存储库的集成 , 您可以对自己项目的产品质量进行深入了解 。
主要特征
- 错误追踪
- 自动化构建
- 代码审查
- 协作
- 持续集成
- 支持的编程语言较为有限
- 能够支持JavaScript、TypeScript、React和Vue.js 。
- DeepScan对于开源项目是免费的 。 其付费计划从每用户、每月9美元起 , 具体请参见--https://deepscan.io/pricing/ 。
作为一种通用的静态分析器 , Embold既可帮助开发人员在那些关键代码问题出现在产品中之前 , 事先查找并定位它们 , 又能够针对应用程序 , 提供诊断、转换和运维等服务 。
由于整合了AI和机器学习技术 , Embold能够通过评级机制 , 对发现的问题提出最佳解决方案 , 并按需对应用进行重构 。 而且 , 它可运行在诸如DevOps技术栈、本地系统、私有云、以及公有云中 。
主要特征
- 直观的用户界面
- 提供更加深入和快速的审查
- 增强的智能性能
- 提供无缝的集成
- 定价过高
- Java、C、C ++、C#、Objective-C、TypeScript、JavaScript、Python、PHP、Go、Kotlin、Solidity、SQL
- Embold的基本版本是免费开源的 。 其高级版本的售价从每月10欧元起 , 具体请参见--https://embold.io/pricing-cloud 。
Veracode是一款仅针对安全性问题的流行静态代码分析工具 。 它能够通过IDE扫描、管道(pipeline)扫描、以及策略扫描等方式 , 在整个管道中执行代码审查 , 以发现安全漏洞 。 通过创建对于代码的评估 , Veracode能够被作为程序的一部分进行审计 。
主要特征
- 提供编码时的安全性反馈
- 在管道中提供快速的运行成果
- 满足审计员的各项要求
- 分析的精度较高 , 无需额外调优
- 提供修复建议
- 不提供任何可自定义的扫描规则
- UX(用户体验)不太好
Java、.NET、JavaScript、Scala、Python、PHP、Ruby on Rails、ColdFusion、Swift、C/C ++、COBOL、Visual Basic 6、RPG等
定价:
- Embold许可证的定价取决于目标项目的规模 。 您可以通过链接—https://info.veracode.com/request-quote.html , 获悉详细报价 。
Reshift是一个基于SaaS的软件平台 。 它可以无缝地被集成到软件开发的工作流程中 。 项目团队可以用它来加速交付流程 , 并确保持续部署过程中的安全性 。 Reshift能够减少他们花费在查找与修复漏洞 , 识别数据泄露的潜在风险 , 以及协助软件产品合规性等方面的成本和时间 。
主要特征
- 能够快速被设置
- 提供安全扫描
- 除Java之外 , 并不支持其他语言
- Java
- Reshift的基本版本是免费开源的 。 其商业版的售价为每月99美元起 , 具体请参见--https://www.reshiftsecurity.com/pricing/ 。
推荐阅读
- 人物|马斯克承认输给了巴菲特:曾尝试挑战喜诗糖果,但最终放弃
- 汽车|苹果明年或尝试推出无实体SIM卡iPhone;现代汽车暂停Genesis氢能汽车项目;任天堂社长:Switch明年初预计仍缺货
- 技术|降价!折叠屏手机有点火,是时候入手了?业内人士建议“再等等”→
- Windows|微软正尝试修复Windows 11多个任务栏问题
- 外卖|部分App账号注销难 中消协建议整改
- 录音|分轨开箱第2期:新派硬核(Program制作思路+新手录音建议)MZD Studios
- 社会|人大教授左美云点赞南都,建议智慧助老小处着眼落到实处
- Pocket|25万起!首款鸿蒙汽车来了!华为纵向折叠屏手机P50宝盒也发布了,8988元起,不支持5G
- 华为|杠上Find N,华为P50 Pocket明天发布:搭载麒麟9000,或不支持5G? | 闪修侠
- Microsoft|Windows 10开始弹窗告知用户IE即将被淘汰 建议切换Edge