你应该了解的安全编码典型问题

前言

对这几年编码过程中,遇到的典型安全编码问题进行归纳总结,以飨诸君。

目录

      • 前言
      • 问题总览
      • 典型问题分析及处理措施
        • 1. 缓存区溢出
        • 2. 整数溢出或回绕
        • 3. 命令注入
        • 4. 引用空指针
        • 5. 跨站脚本
        • 6. 未正确清理特定内容
        • 7. 日志文件信息泄露
        • 8. SQL注入
        • 9. 不正确的资源关闭和释放
        • 10. 不正确的数组索引验证
        • 11. 缓存区大小计算不正确
      • THE END

问题总览

你应该了解的安全编码典型问题_第1张图片

典型问题分析及处理措施

1. 缓存区溢出

你应该了解的安全编码典型问题_第2张图片
你应该了解的安全编码典型问题_第3张图片

2. 整数溢出或回绕

你应该了解的安全编码典型问题_第4张图片
你应该了解的安全编码典型问题_第5张图片

3. 命令注入

你应该了解的安全编码典型问题_第6张图片
你应该了解的安全编码典型问题_第7张图片

4. 引用空指针

你应该了解的安全编码典型问题_第8张图片
几种常见示例:

  1. 代码中未对由外部可控的对象判空,直接使用导致引用空指针异常。
    推荐做法为:对于可能出现为null的对象,在使用前判空
  2. 待码中未对可能返回NULL的函数返回值判空,直接使用导致引用空指针异常。
    推荐做法为:对于可能出现为NULL的函数返回值,在使用前判空
  3. 内存申请函数一般不会失败,但是万一失败了,后面代码直接产生空指针异常。
    推荐做法为:对内存申请的指针进行判空处理。
  4. 全局变量或全局变量结构体成员是否为指针依赖其他的流程处理,可能出现空指针的情况,使用前未判空导致程序异常。
    推荐做法为:对于可能为NULL的全局变量、局部变量、结构体成员指针在使用前进行判空处理。

5. 跨站脚本

你应该了解的安全编码典型问题_第9张图片
存储型XSS示意图如下:
你应该了解的安全编码典型问题_第10张图片
反射型XSS示意图如下:
你应该了解的安全编码典型问题_第11张图片
你应该了解的安全编码典型问题_第12张图片

6. 未正确清理特定内容

你应该了解的安全编码典型问题_第13张图片
你应该了解的安全编码典型问题_第14张图片

7. 日志文件信息泄露

你应该了解的安全编码典型问题_第15张图片

8. SQL注入

你应该了解的安全编码典型问题_第16张图片
你应该了解的安全编码典型问题_第17张图片

9. 不正确的资源关闭和释放

你应该了解的安全编码典型问题_第18张图片
你应该了解的安全编码典型问题_第19张图片

10. 不正确的数组索引验证

你应该了解的安全编码典型问题_第20张图片
你应该了解的安全编码典型问题_第21张图片

11. 缓存区大小计算不正确

你应该了解的安全编码典型问题_第22张图片
你应该了解的安全编码典型问题_第23张图片

THE END

如果你有更好的补充,欢迎后台留言交流。

你可能感兴趣的:(可信编程)