一、缓冲区溢出,使用不安全的函数

例如strcpy、sprintf、strcat、scanf等

应换用更安全的函数或者判断传入参数的大小,防止超过缓冲区大小。

strcpy()可改用strncpy(),并在最后添加0结尾符;sprintf()可改用snprintf();strcat()可改用strncat();scanf()可改用scanf_s()

二、处理问题时出错

  1. 未检查返回值的情况下调用函数
  2. 将负值用作了期望正值的函数的参数.

三、错误的表达式

  1. 可能除零
  2. .错误的sizeof()
    1. ​
      S2IDString tIDString;
      memset(&tIDString,0,sizeof(SIDString));
      ​
  3. 复制错误。
    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;}
  4. 条件是多余的,无论结果如何,执行的代码相同
    1.    if(pTermStruct == G_NULL){return 1;}return 1 ;

四、控制流问题

无法到达的语句:不带符号的值判断>0,值永远为true

五、内存泄漏

  1. 非法访问

strlen:将不以 null 终止的字符缓冲区传递给了期望获得以 null 终止的字符串的函数
    strncpy:大小应减1,并结尾加0

  1. 内存泄漏

针对标量或使用 new[] 分配的指针数组使用了非数组删除

六、初始化

  1. 非void函数需要有返回值
  2. 变量使用前未初始化
  3. 标量字段未被构造函数初始化

非静态类成员,在此构造函数或其调用的任何函数中未初始化

七、API使用错误

  1. 使用 va_start 或 va_copy 来开始处理;未使用 va_end 来结束
  2. 参数过多或过少,例如:未使用,但却传入了参数。
    1. sprintf(tmpBuf, "YVal", ProcTime.GetMonth());
      sql.Format("SELECT %s, %s FROM ",sHours[0]);
  3. 格式转换不兼容,例如%d,期望"int",但传入参数为"unsigned long";%s期望"char *",但传入"QString"
  4. 源缓冲区可能与目标缓冲区重叠,这会导致 "memcpy" 的未定义行为
    1.     memcpy(chPos, chPos+2, sizeof(char)*(strlen(i_pData->szBJName) - nPos-2));memset(chPos+strlen(chPos)-2, 0, sizeof(char)*2);

八、明文存储密码

C++源代码审计问题整改记录相关推荐

  1. php代码实现做网络安全的功能,基于PHP关键词审计技巧?网络安全源代码审计

    网络安全学习中,源代码审计是较为重要的一项.源代码审计分为白盒.黑盒.灰盒.审计方法也有多种.但是基于关键词审计技巧有什么?是很多人都想了解的. 以下是基于php审计关键词审计技巧总结: 在搜索时要注 ...

  2. 菜鸟的源代码审计之路

    一.前言 源代码审计,顾名思义就是检查源代码中是否存在安全隐患,使用自动化工具以及人工的方式对源代码进行分析检查,发现源代码的这些缺陷引起的漏洞,并提供修复措施和建议. 在开始之前,我们先了解一下MV ...

  3. 源代码审计之——工具源代码审计

    工具源代码审计 简单记一下,很多工具都是收费的,资料很少,今天安全开发生命周期学了一半存草稿了,明儿总结完一起发吧 最近都是偏理论的一些安全知识了,有一丶丶枯燥啦 Fortify 漏洞审计分析 主页面 ...

  4. 修改openssh源代码,添加操作记录审记功能

    为什么80%的码农都做不了架构师?>>>    这个是之前一年前研究搞过,当时记保存了源代码,本想直接用当时的代码写编文章,中间电脑换过几次,不知是丢了,还是没有找到.写这编博文是凭 ...

  5. linux添加审计账户_眼镜蛇W眼镜蛇白盒品白源代码审计工具 白帽子版

    写在最前,Cobra-W就像手中的一把剑,这把剑好不好用是Cobra-W的事,如何使用是你的事,希望能有更多的人参与到Cobra-W的变化中来...请使用python3.6 运行该工具,已停止维护py ...

  6. 审计文件的作用以及记录的内容,审计日志的记录,以及审计日志包括的内容

    对DBA(数据库管理员)而言,审计就是记录数据库中正在作什么的过程. 审计文件的作用 审计功能把用户对数据库的所有操作自动记录下来,放入审计日志中,审计员可以利用审计日志监控数据库中的各种行为,重现导 ...

  7. pixelXL 下载编译源代码刷机烧录记录

    清华镜像站地址:https://mirrors.tuna.tsinghua.edu.cn/help/AOSP/ google官网代号标记和细分版本:https://source.android.com ...

  8. Odoo | 开源ERP,解锁审计和日志记录新玩法

    目录 一.项目背景 二.Audit Log模块介绍 三.Odoo集成Audit Log 1.下载Audit Log源码到本地 2.将Audit Log集成到Odoo中 四.Audit Log使用: 1 ...

  9. Bash审计与命令记录

    翻译原出处:www.pointsoftware.ch/de/howto-bash-audit-command-logger/ 翻译并整理了一下,水平有限,多请见谅. 有一个完整的输入命令记录在很多情况 ...

  10. 代码审计利器-Seay源代码审计系统

    Seay压缩文件 解压Seay后进行安装 一路默认即可 下载安装.net相关组件即可正常使用 主界面如图 5.2 实验任务二 这次还是以dvwa为例 左上角新建项目,选择dvwa源码文件夹 点击确定后 ...

最新文章

  1. 如何优雅的实现 Spring Boot 接口参数加密解密?
  2. uva 133解题报告
  3. 如何做到行业顶尖位置?
  4. vb.net json上传服务器_vue项目编译后自动上传,告别繁琐的操作
  5. windows环境下安装wget
  6. 挖坑:handoop2.6 开启kerberos(全流程学习记录)
  7. 手机浏览器和pc浏览器下载文件方法
  8. 操作系统清华 向勇 陈渝(RISC-V)(2)---操作系统与系统结构和程序设计语言
  9. 如何以root用户登录mysql_如何让mysql以root用户远程登陆mysql数据库?
  10. 阿里云数据库RDS如何监控、备份及克隆实例?
  11. Android相机预览设置适配及显示方式
  12. Linux tty串口测试程序
  13. js生产13位条形码
  14. JavaScript Boolean(布尔)对象
  15. UCWeb战略和发展
  16. python转exe怎么不会被杀毒软件_使用Python Shells绕过杀毒软件
  17. Git专题:历史记录清理:保留代码并删除一年前的提交记录
  18. Vista下的UAC功能
  19. 安卓图形绘制- LinearGradient 线性梯度
  20. JAVA计算机毕业设计美容院管理系统(附源码、数据库)

热门文章

  1. mybatis批量删除 java_Mybatis批量删除数据操作方法
  2. 谈谈我对普通莫队和带修莫队的拙见
  3. 【cvpr2022】ReSTR: Convolution-free Referring Image Segmentation Using Transformers
  4. 【构造】POJ-3295 Tautology
  5. Verilog设计遇到了Congestion问题怎么办?
  6. MSDB数据库置疑的解决方法
  7. 怎么在地图上标注自己的店铺
  8. web网页设计实例作业 ——中国风文化传媒企业官网(6页) 简单个人网页设计作业 静态HTML文化主题网页作业
  9. Eclipse同屏显示两个代码编辑窗口
  10. 四位共阳极数码管显示函数_DS1302,四位共阳极数码管显示时钟,可调时间