前言
对这几年编码过程中,遇到的典型安全编码问题进行归纳总结,以飨诸君。
目录
问题总览
典型问题分析及处理措施
1. 缓存区溢出
2. 整数溢出或回绕
3. 命令注入
4. 引用空指针
几种常见示例:
- 代码中未对由外部可控的对象判空,直接使用导致引用空指针异常。
推荐做法为:对于可能出现为null的对象,在使用前判空 - 待码中未对可能返回NULL的函数返回值判空,直接使用导致引用空指针异常。
推荐做法为:对于可能出现为NULL的函数返回值,在使用前判空 - 内存申请函数一般不会失败,但是万一失败了,后面代码直接产生空指针异常。
推荐做法为:对内存申请的指针进行判空处理。 - 全局变量或全局变量结构体成员是否为指针依赖其他的流程处理,可能出现空指针的情况,使用前未判空导致程序异常。
推荐做法为:对于可能为NULL的全局变量、局部变量、结构体成员指针在使用前进行判空处理。
5. 跨站脚本
存储型XSS示意图如下:
反射型XSS示意图如下:
6. 未正确清理特定内容
7. 日志文件信息泄露
8. SQL注入
9. 不正确的资源关闭和释放
10. 不正确的数组索引验证
11. 缓存区大小计算不正确
THE END
如果你有更好的补充,欢迎后台留言交流。