C++源代码审计问题整改记录
一、缓冲区溢出,使用不安全的函数
例如strcpy、sprintf、strcat、scanf等
应换用更安全的函数或者判断传入参数的大小,防止超过缓冲区大小。
strcpy()可改用strncpy(),并在最后添加0结尾符;sprintf()可改用snprintf();strcat()可改用strncat();scanf()可改用scanf_s()
二、处理问题时出错
- 未检查返回值的情况下调用函数
- 将负值用作了期望正值的函数的参数.
三、错误的表达式
- 可能除零
- .错误的sizeof()
S2IDString tIDString; memset(&tIDString,0,sizeof(SIDString));
- 复制错误。
Jint32 baseDirIndex = baseDirStr.find('/');if(baseDirIndex!=-1){baseDirStr = baseDirStr.mid(baseDirStr.find('/')+1);}else {baseDirStr = QString::null;}Jint32 currentIndex = currentDirStr.find('/');if(currentIndex!=-1){currentDirStr = currentDirStr.mid(currentDirStr.find('/')+1);}else {baseDirStr = QString::null;}
- 条件是多余的,无论结果如何,执行的代码相同
if(pTermStruct == G_NULL){return 1;}return 1 ;
四、控制流问题
无法到达的语句:不带符号的值判断>0,值永远为true
五、内存泄漏
- 非法访问
strlen:将不以 null 终止的字符缓冲区传递给了期望获得以 null 终止的字符串的函数
strncpy:大小应减1,并结尾加0
- 内存泄漏
针对标量或使用 new[] 分配的指针数组使用了非数组删除
六、初始化
- 非void函数需要有返回值
- 变量使用前未初始化
- 标量字段未被构造函数初始化
非静态类成员,在此构造函数或其调用的任何函数中未初始化
七、API使用错误
- 使用 va_start 或 va_copy 来开始处理;未使用 va_end 来结束
- 参数过多或过少,例如:未使用,但却传入了参数。
sprintf(tmpBuf, "YVal", ProcTime.GetMonth()); sql.Format("SELECT %s, %s FROM ",sHours[0]);
- 格式转换不兼容,例如%d,期望"int",但传入参数为"unsigned long";%s期望"char *",但传入"QString"
- 源缓冲区可能与目标缓冲区重叠,这会导致 "memcpy" 的未定义行为
memcpy(chPos, chPos+2, sizeof(char)*(strlen(i_pData->szBJName) - nPos-2));memset(chPos+strlen(chPos)-2, 0, sizeof(char)*2);
八、明文存储密码
C++源代码审计问题整改记录相关推荐
- php代码实现做网络安全的功能,基于PHP关键词审计技巧?网络安全源代码审计
网络安全学习中,源代码审计是较为重要的一项.源代码审计分为白盒.黑盒.灰盒.审计方法也有多种.但是基于关键词审计技巧有什么?是很多人都想了解的. 以下是基于php审计关键词审计技巧总结: 在搜索时要注 ...
- 菜鸟的源代码审计之路
一.前言 源代码审计,顾名思义就是检查源代码中是否存在安全隐患,使用自动化工具以及人工的方式对源代码进行分析检查,发现源代码的这些缺陷引起的漏洞,并提供修复措施和建议. 在开始之前,我们先了解一下MV ...
- 源代码审计之——工具源代码审计
工具源代码审计 简单记一下,很多工具都是收费的,资料很少,今天安全开发生命周期学了一半存草稿了,明儿总结完一起发吧 最近都是偏理论的一些安全知识了,有一丶丶枯燥啦 Fortify 漏洞审计分析 主页面 ...
- 修改openssh源代码,添加操作记录审记功能
为什么80%的码农都做不了架构师?>>> 这个是之前一年前研究搞过,当时记保存了源代码,本想直接用当时的代码写编文章,中间电脑换过几次,不知是丢了,还是没有找到.写这编博文是凭 ...
- linux添加审计账户_眼镜蛇W眼镜蛇白盒品白源代码审计工具 白帽子版
写在最前,Cobra-W就像手中的一把剑,这把剑好不好用是Cobra-W的事,如何使用是你的事,希望能有更多的人参与到Cobra-W的变化中来...请使用python3.6 运行该工具,已停止维护py ...
- 审计文件的作用以及记录的内容,审计日志的记录,以及审计日志包括的内容
对DBA(数据库管理员)而言,审计就是记录数据库中正在作什么的过程. 审计文件的作用 审计功能把用户对数据库的所有操作自动记录下来,放入审计日志中,审计员可以利用审计日志监控数据库中的各种行为,重现导 ...
- pixelXL 下载编译源代码刷机烧录记录
清华镜像站地址:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ google官网代号标记和细分版本:https://source.android.com ...
- Odoo | 开源ERP,解锁审计和日志记录新玩法
目录 一.项目背景 二.Audit Log模块介绍 三.Odoo集成Audit Log 1.下载Audit Log源码到本地 2.将Audit Log集成到Odoo中 四.Audit Log使用: 1 ...
- Bash审计与命令记录
翻译原出处:www.pointsoftware.ch/de/howto-bash-audit-command-logger/ 翻译并整理了一下,水平有限,多请见谅. 有一个完整的输入命令记录在很多情况 ...
- 代码审计利器-Seay源代码审计系统
Seay压缩文件 解压Seay后进行安装 一路默认即可 下载安装.net相关组件即可正常使用 主界面如图 5.2 实验任务二 这次还是以dvwa为例 左上角新建项目,选择dvwa源码文件夹 点击确定后 ...
最新文章
- 如何优雅的实现 Spring Boot 接口参数加密解密?
- uva 133解题报告
- 如何做到行业顶尖位置?
- vb.net json上传服务器_vue项目编译后自动上传,告别繁琐的操作
- windows环境下安装wget
- 挖坑:handoop2.6 开启kerberos(全流程学习记录)
- 手机浏览器和pc浏览器下载文件方法
- 操作系统清华 向勇 陈渝(RISC-V)(2)---操作系统与系统结构和程序设计语言
- 如何以root用户登录mysql_如何让mysql以root用户远程登陆mysql数据库?
- 阿里云数据库RDS如何监控、备份及克隆实例?
- Android相机预览设置适配及显示方式
- Linux tty串口测试程序
- js生产13位条形码
- JavaScript Boolean(布尔)对象
- UCWeb战略和发展
- python转exe怎么不会被杀毒软件_使用Python Shells绕过杀毒软件
- Git专题:历史记录清理:保留代码并删除一年前的提交记录
- Vista下的UAC功能
- 安卓图形绘制- LinearGradient 线性梯度
- JAVA计算机毕业设计美容院管理系统(附源码、数据库)
热门文章
- mybatis批量删除 java_Mybatis批量删除数据操作方法
- 谈谈我对普通莫队和带修莫队的拙见
- 【cvpr2022】ReSTR: Convolution-free Referring Image Segmentation Using Transformers
- 【构造】POJ-3295 Tautology
- Verilog设计遇到了Congestion问题怎么办?
- MSDB数据库置疑的解决方法
- 怎么在地图上标注自己的店铺
- web网页设计实例作业 ——中国风文化传媒企业官网(6页) 简单个人网页设计作业 静态HTML文化主题网页作业
- Eclipse同屏显示两个代码编辑窗口
- 四位共阳极数码管显示函数_DS1302,四位共阳极数码管显示时钟,可调时间