编程课程
编程实战
编程题库
编程教程
在线工具
免费AI编程助手
VIP会员
开学季
App下载
扫码下载编程狮APP
注册
|
登录
注册成功
X
W3Cschool
恭喜您成为首批注册用户
获得88经验值奖励
马上体验
入门教程
编程课程
VIP会员
腾讯代码安全指南
赞
收藏
更多文章
目录
搜索
书签
C/C++ 安全指南
C/C++ 通用安全指南
C/C++ 使用错误
C/C++ 不推荐的编程习惯
C/C++ 多线程
C/C++ 加密解密
C/C++ 文件操作
C/C++ 内存操作
C/C++ 数字操作
C/C++ 指针操作
JavaScript 安全指南
JavaScript 页面类
JavaScript 代码实现
JavaScript 原生 DOM API 的安全操作
JavaScript 流行框架/库的安全操作
JavaScript 页面重定向
JavaScript JSON 解析/动态执行
JavaScript 跨域通讯
JavaScript 配置&环境
JavaScript 敏感/配置信息
JavaScript 第三方组件/资源
JavaScript 纵深安全防护
Node.js 后台类
Node.js 代码实现
Node.js 输入验证
Node.js 执行命令
Node.js 文件操作
Node.js 网络请求
Node.js 数据输出
Node.js 响应输出
Node.js 执行代码
Node.js Web 跨域
Node.js SQL 操作
Node.js NoSQL操作
Node.js 服务器端渲染(SSR)
Node.js URL跳转
Node.js Cookie与登录态
Node.js 配置&环境
Node.js 依赖库
Node.js 运行环境
Node.js 配置信息
搜索
A
A
默认
护眼
夜间
阅读(2k)
书签
赞
(
0
)
分享
我要纠错
C/C++ 通用安全指南
2022-08-02 15:45 更新
通用安全指南目录
1 通用安全指南
I. C/C++使用错误
1.1 不得直接使用无长度限制的字符拷贝函数
1.2 创建进程类的函数的安全规范
1.3 尽量减少使用 _alloca 和可变长度数组
1.4 printf系列参数必须对应
1.5 防止泄露指针(包括%p)的值
1.6 不应当把用户可修改的字符串作为printf系列函数的“format”参数
1.7 对数组delete时需要使用delete[]
1.8 注意隐式符号转换
1.9 注意八进制问题
II. 不推荐的编程习惯
2.1 switch中应有default
2.2 不应当在Debug或错误信息中提供过多内容
2.3 不应该在客户端代码中硬编码对称加密秘钥
2.4 返回栈上变量的地址
2.5 有逻辑联系的数组必须仔细检查
2.6 避免函数的声明和实现不同
2.7 检查复制粘贴的重复代码
2.8 左右一致的重复判断/永远为真或假的判断
2.9 函数每个分支都应有返回值
2.10 不得使用栈上未初始化的变量
2.11 不得直接使用刚分配的未初始化的内存(如realloc)
2.12 校验内存相关函数的返回值
2.13 不要在if里面赋值
2.14 确认if里面的按位操作
III. 多线程
3.1 变量应确保线程安全性
3.2 注意signal handler导致的条件竞争
3.3 注意Time-of-check Time-of-use条件竞争
IV. 加密解密
4.1 不得明文存储用户密码等敏感数据
4.2 内存中的用户密码等敏感数据应该安全抹除
4.3 rand() 类函数应正确初始化
4.4 在需要高强度安全加密时不应使用弱PRNG函数
4.5 自己实现的rand范围不应过小
V. 文件操作
5.1 避免路径穿越问题
5.2 避免相对路径导致的安全问题
5.3 文件权限控制
Ⅵ. 内存操作
6.1 防止各种越界写
6.2 防止任意地址写
Ⅶ. 数字操作
7.1 防止整数溢出
7.2 防止Off-By-One
7.3 避免大小端错误
7.4 检查除以零异常
7.5 防止数字类型的错误强转
7.6 比较数据大小时加上最小/最大值的校验
Ⅷ. 指针操作
8.1 检查在pointer上使用sizeof
8.2 检查直接将数组和0比较的代码
8.3 不应当向指针赋予写死的地址
8.4 检查空指针
8.5 释放完后置空指针
8.6 防止错误的类型转换
8.7 智能指针使用安全
以上内容是否对您有帮助:
在文档使用的过程中是否遇到以下问题:
内容错误
更新不及时
链接错误
缺少代码/图片示列
太简单/步骤待完善
其他
更多建议:
提交建议
←
C/C++ 安全指南
C/C++ 使用错误
→
写笔记
我要补充
精选笔记
在线笔记
App下载
扫描二维码
下载编程狮App
公众号
编程狮公众号
意见反馈
意见反馈
X
意见反馈:
联系方式:
提交
查看完整版笔记
保存
关闭
教程纠错
教程纠错
违规举报
X
广告等垃圾信息
不友善内容
违反法律法规的内容
不宜公开讨论的政治内容
其他
提交
更多建议: