静态代码扫描工具(多种)简要入门介绍-SonarQube社区版-免费、TscanCode工具、PMD工具、flake8工具

article/2025/10/24 12:30:24

SonarQube社区版-免费

适用语言:Java, C#, JavaScript, TypeScript, CloudFormation, Terraform, Kotlin, Ruby, Go, Scala, Flex, Python, PHP, HTML, CSS, XML and VB.NET

下载安装

        由于实际操作中,JDK版本的限制,8及以下,进入Download | SonarQube,下拉到页面最下方,选择6.7.7版本

提前准备好Java环境

        下载完成后解压,针对所要扫描项目的类型,需提前准备对应的环境配置,如python项目需提前安装python,此处不予细说

解压后进入bin\对应操作系统版本目录,执行StartSonar.bat文件

        出现以下现象,进入任务管理器-详细信息,找到Java,结束所有java.exe

     

        出现Log4j相关报错,查看本地安装的Java版本是否为64位,一定要和本机操作系统一致

        出现以下提示,SonarQube服务启动成功

jvm 1    | 2021.12.30 15:02:32 INFO  app[][o.s.a.SchedulerImpl] Process[ce] is up
jvm 1    | 2021.12.30 15:02:32 INFO  app[][o.s.a.SchedulerImpl] SonarQube is up

        打开浏览器,输入http://localhost:9000,进入操作台,初始用户名和密码都为admin

        此处需注意本地9000端口,不能被占用

        登录成功后创建项目,创建token,点击继续,到选择语种页

        

        若不小心退出引导,也不知道何处创建项目,点击右上角搜索栏右侧的问号,再点击第二项,然后新建项目

         根据实际操作,个人虽创建好了sonar数据库,但实际未见使用痕迹,故此处不进行讲解,若大家在使用过程中,出现了文中未见得错误且无法解决,进入Sonarqube根目录\conf\打开sonar.properties,看你个人下载的版本要求的数据库版本是否对应,然后创建一个Sonar数据库

Java项目

        根据项目所用的框架,选定语言和框架后,例如Maven,确保已安装Maven,且已配置好已调通,复制红框内的命令到文本中,将文本中的\删除,两个语句中间仅留两个空格。

        打开cmd命令窗口,进入java项目的根目录,执行语句,提示BUILD SUCCESS,即为成功,等待sonar操作台返回报告

        注意:由于项目文件过大,可能会导致扫描过程中内存溢出,添加以下内容到sonarqube\conf\sonar.preperites,再次执行。(大于100M的项目建议直接添加

sonar.web.javaOpts =-Xmx8192m -Xms512m -XX:MaxPermSize=8192msonar.ce.javaOpts =-Xmx8192m -Xms512m -XX:MaxPermSize=8192msonar.search.javaOpts =-Xmx8912m -Xms512m -XX:MaxPermSize=8192m

C#项目

        选定语言,创建号项目名称

       

        点击Download跳转下载相应的扫描仪,并将解压好的扫描仪的路径添加到环境变量中

        进入项目根目录中,打开cmd命令窗口,逐条执行提供的语句,注意:由于版本等限制,我们使用的扫描仪与网站提供的命令中的.exe可执行文件名字不同,需将提供的命令中的可执行文件名字改为你下载好的扫描仪中的.exe可执行文件名即可

Python项目

         操作步骤同C#项目操作

TscanCode工具

        此处转载个人借鉴的一篇文章,简单易上手TscanCode C/C++静态分析开源分析工具安装与使用_liweibin812的博客-CSDN博客_tscancode

PMD工具

        此处转载个人借鉴的一篇文章全面剖析PMD静态代码扫描工具_zlx312的博客-CSDN博客_pmd-bin

        这里需要注意的是,在下载PMD的过程中,要针对好自己项目的语言进行下载,下载好的文件中需含有bin目录和pmd.bat可执行文件,不要盲目下载,注意鉴别

flake8工具

        此处转载个人借鉴的一篇文章,很详细python静态代码检查_Python静态代码扫描工具——flake8_weixin_39849479的博客-CSDN博客

 结语

        纯个人小白研究经验,如有不对尽情告知,文中若有侵权、转载不当等,请联系删帖


http://chatgpt.dhexx.cn/article/IqysynC5.shtml

相关文章

《Python代码审计》(1)一款超好用的代码扫描工具

1.前言 从本文开始,我将开始介绍Python源代码审计,代码审计是检查源代码中的安全缺陷,检查源代码是否存在安全隐患,或者编码不规范的地方。通常使用自动化工具或者人工审查的方式,自动化工具效率高,但是误…

java 静态扫描_静态代码扫描工具 – (八)- 扫描Java项目

静态代码扫描工具 – (八)- 扫描Java项目 1、准备好Java项目代码 只要是java语言实现的项目均可。 比如,自动化测试的代码,测试平台等均可以。 本次案例,使用java语言实现的测试平台来做为扫描对象。 2、了解java项目代码的结构。 为什么要了…

Android和iOS静态代码扫描工具

Android 名称 来源 功能特点 检查SQL注入 检查NullPointException 支持IDE情况 Android Lint Android SDK 针对Android,检查范围广 否 是 Eclipse、Android Studio FindBugs 国外 针对Java程序,失去对Android特性的检查 否 是 Eclipse、…

[C++]TscanCode代码扫描工具

TscanCode介绍 TscanCode 是腾讯研发的静态代码扫描工具,最早的版本是基于 cppcheck 二次开发。之后又重新自研,不仅支持 C,还支持 C#,Lua 语言,在发掘 C 空指针、越界、未初始化、C#空引用、Lua变量未初始化等比较有…

源代码扫描工具

1. DMSCA-企业级静态源代码扫描分析服务平台 系统架构 客户可以通过Internet或者局域网络 从浏览器、Eclipse、Visual Studio 、命令行 、甚至 Web 服务访问DMSCA 服务平台,上传扫描代码,选择扫描策略,自动化扫描, 并利用平台可视…

Fortify代码扫描工具

一、Fortify介绍 Fortify是一款强大的静态代码扫描分析工具,其发现代码漏洞缺陷的能力十分强悍,主要是将代码经过编译,依托于其强大的内置规则库来发现漏洞的。其次fortify SCA团队在开发此商业工具时,也提供了自定义规则的…

四款优秀的源代码扫描工具简介

转载于:https://www.cnblogs.com/xiaominggong/archive/2019/05/06/10821005.html 一、DMSCA-企业级静态源代码扫描分析服务平台 端玛企业级静态源代码扫描分析服务平台(英文简称:DMSCA)是一个独特的源代码安全漏洞、质量缺陷和逻…

SonarQube代码扫描工具

SonarQube(社区版) SonarQube是一个用于代码质量管理的开放平台,通过插件机制,SonarQube可以集成不同的测试工具,代码分析工具,以及持续集成工具,例如Hudson/Jenkins等。 sonarqube的七个维度检测代码质量: 复杂度分布:代码复杂度过高将难以理解重复代码:程序中包含…

java代码扫描工具比较_代码扫描工具的选型和Sonar最佳实践

目标 在编码阶段发现NNE空指针异常、IO流未正确关闭等致命性bug,杜绝此类“零容忍”线上异常的发生。 技术选型 关于代码扫描工具,比较主流的有Sonar、FindBugs、Alibaba Java Coding Guidelines、CheckStyle。 Alibaba Java Coding Guidelines最大的优点是全中文的提示,对国…

静态代码扫描工具汇总

一、概述 在软件开发过程中,开发团队往往要花费大量的时间和精力发现并修改代码缺陷。传统的代码评审、同事复审,通过人工方式来检查缺陷仍然是一件耗时耗力的事情。而静态代码扫描工具能够在代码构建过程中帮助开发人员快速、有效的定位代码缺陷并及时…

用户行为序列推荐模型

导读:今天我们谈谈用户行为序列上的推荐模型。首先我们对序列推荐问题做一个定义和描述,然后主要讲述可以用在序列推荐任务中的 NN 模型,最后给出一点个人看法以及文中相关的参考文献供参阅。 用户行为大多数情况下都是存在时间上的先后关系…

用户兴趣模型分类以及推荐系统技术调研

用户兴趣模型分类 根据用户之前在相关网站的行为数据记录分析出用户的兴趣和偏好,然后根据不同用户兴趣和偏好不同为其推荐不同的内容,这种新的信息获取方式被称为个性化推荐技术。 个性化新闻推荐系统中常用的几种用户兴趣建模方法: &…

用户生命周期模型

本文转载自: https://blog.csdn.net/l18930738887/article/details/50818878 一、为什么要定义用户生命周期? 用户生命周期是为了定位每个用户在哪个阶段,对于某个阶段的用户进行不同的营销策略。比如初期用户:还没有养成使用习…

Django重写User模型修改明文密码加密方法

由于继承Django的User列表会导致创建新用户的密码为明文,导致无法正常登陆,因此需要修改adminx中的部分配置实现原始的用户密码记录功能。 从这样的界面进入注册用户的密码就是加密的密码效果了,否则是显示明文密码非加密状态。 文章目录 实现步骤实现步骤 需要在项目的m…

【模型理解】KANO模型

前言 在大量的需求需要进行迭代时,由于时间、人力、财力等相关因素干扰,无法在有限的时间内容对所有的需求进行满足,此时需要我们对需求进行优先级的排列。最大化的合理的提高有限资源的使用。 在常见的产品优先级区分的方式有时间四象限模…

软件工程的十大模型

1.软件生命周期模型 软件生命周期由软件定义、软件开发与运维(也称软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。 问题定义:“要解决的问题是什么?”通过对客户的访问调查,系统分析员扼要地写出…

SaaS用户管理系统模型设计

最近一直在研究关于SaaS化的用户管理系统,现将项目中的模型做一整理,先贴图: 图中黄色方框:租户/组织、部门、员工 完成的是对整个组织结构及结构中人员分布的管理; 图中绿色方框:系统用户(包括…

认识每一个“你”:微博中的用户模型

社交媒体(Social Media)相对于传统互联网媒体的最大区别是通过建立人与人之间的联系,极大提升了信息生产量以及传播效率。身处社交媒体中的每个人或组织同时扮演着信息生产者、传播者与接受者的角色。 在社交媒体背景下,用户生产…

Django默认用户模型类和父类 AbstractUser 介绍

Django默认用户模型类 Django 框架默认使用一个 User 模型类, 保存有关用户的数据。 例如: 我们定义 admin 站点时, 定义的超级用户信息, 就是存储在 User 模型类对应的表中。 我们可以通过 select * from auth_user; 查看数据表。 这个表里就是我们保存的管理员信息,是由用户…

RFM用户分层模型|原理+Python全流程实现

RFM 模型 在数据分析中经常会进行用户分层,本文我们来了解一下常见的用户分层模型RFM。 RFM概念 RFM是由R(Recency)、F (Frequency)、 M(Monetary) 三个维度构成的,其具体含义如下: R:最近一次消费时间间隔 F:消费频…