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

前言

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

问题总览

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

典型问题分析及处理措施

1. 缓存区溢出

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

2. 整数溢出或回绕

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

3. 命令注入

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

4. 引用空指针

你应该了解的安全编码典型问题
几种常见示例:

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

5. 跨站脚本

你应该了解的安全编码典型问题
存储型XSS示意图如下:
你应该了解的安全编码典型问题
反射型XSS示意图如下:
你应该了解的安全编码典型问题
你应该了解的安全编码典型问题

6. 未正确清理特定内容

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

7. 日志文件信息泄露

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

8. SQL注入

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

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

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

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

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

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

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

THE END

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