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

article/2025/10/24 12:31:51

1.前言

从本文开始,我将开始介绍Python源代码审计,代码审计是检查源代码中的安全缺陷,检查源代码是否存在安全隐患,或者编码不规范的地方。通常使用自动化工具或者人工审查的方式,自动化工具效率高,但是误报率也高,并且发现的问题不够深入、全面;人工审查的方式可以全面深入的发现源代码中的安全缺陷,缺点是耗时较长。

2.Bandit安装

Python目前使用的范围很广,但是相关代码审计文章较少,本专栏将全面介绍Python代码审计,以供安全从业者、Python开发者参考,使得系统更加安全、健壮、稳定。

Bandit 是一款 Python 源码分析框架,可用于 Python 代码的安全性分析。Bandit 使用标准库中的 AST 模块,将 Python 源码解析成 Python 语法节点构成的树。Bandit 允许用户编写自定义的测试。测试完成后,Bandit 会生成针对源码的安全报告。

Bandit 安装需要Python环境支持,安装Python3后,执行以下命令:

pip install bandit

安装bandit完成后,执行以下命令:

bandit -r F:\\PythonSpace\\sm\\bank\\ -f html -o 1.html

其中:

F:\\PythonSpace\\sm\\bank\\  为扫描的源码目录

-f html 指定生成html报告,工具支持多种格式,如csv,custom,html,json,screen,txt,xml,yaml。

-o 1.html 指定导出的文件名

3.Bandit使用案例

我们使用bandit扫描一个Python项目,看看它的效果如何。

bandit -r F:\\PythonSpace\\sm\\bank\\ -f html -o 1.html

扫描结果:

 可以看到,工具扫到了密码硬编码和SQL注入漏洞,具体就不展开了,将放在下一篇文章中。


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

相关文章

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:消费频…

用户增长——AARRR模型

AARRR模型是做用户分析的经典模型之一。它以完整的用户生命周期为线索,描述了用户使用产品需经历的五个环节,最终获取商业价值。什么是AARRR模型? AARRR是由五个单词的首字母组成,分别代表【获取、激活、留存、收入、传播】五个阶…