华为C&C++语言安全编程规范 免费 电子书 PDF 下载
1. 图书信息
- 书名: 《华为C&C++语言安全编程规范》
- 作者: —
- 出版社: —
- 出版日期: —
- 分类: 编程规范
- 格式: PDF
2. 内容简介
- 变量方面
- 规则:指针变量、表示资源描述符的变量、BOOL变量声明必须赋予初值;指向资源句柄或描述符的变量,在资源释放后立即赋予新值;类的成员变量必须在构造函数中赋予初值;严禁对指针变量进行sizeof操作。
- 建议:尽量使用const;全局变量的访问如果涉及多个线程,需要考虑多线程竞争条件问题;同一个函数内,局部变量所占用的空间不要过大。
- 断言(ASSERT)方面
- 规则:断言必须使用宏定义,禁止直接调用系统提供的assert();运行时可能会导致的错误,严禁使用断言。
- 建议:不要将多条语句放在同一个断言中。
- 函数方面
- 规则:数组作为函数参数时,必须同时将其长度作为函数的参数;不对内容进行修改的指针型参数,定义为const。
- 建议:字符串或指针作为函数参数时,请检查参数是否为NULL。
- 异常机制方面:禁用C++异常机制。
- 类方面
- 规则:构造函数内不能做任何有可能失败的操作;严禁在构造函数中创建线程;如果类的公共接口中返回类的私有数据地址,则必须加const类型。
- 建议:尽量避免定义public成员。
- 安全退出方面
- 规则:禁用atexit函数;严禁调用kill、TerminateProcess函数终止其他进程;禁用pthread_exit、ExitThread函数。
- 建议:禁用exit、ExitProcess函数(main函数除外);禁用abort函数。
- 字符串/数组操作方面
- 规则:确保有足够的存储空间;对字符串进行存储操作,确保字符串有’\0’结束符;外部数据作为数组索引时必须确保在数组大小范围内;外部输入作为内存操作相关函数的复制长度时,需要校验其合法性;调用格式化函数时,禁止format参数由外部可控。
- 整数方面
- 规则:整数之间运算时必须严格检查,确保不会出现溢出、反转、除0;整型表达式比较或赋值为一种更大类型之前必须用这种更大类型对它进行求值;禁止对有符号整数进行位操作符运算;禁止整数与指针间的互相转化;禁止对指针进行逻辑或位运算(&&、||、!、~、>>、<<、&、^、|);循环次数如果受外部数据控制,需要校验其合法性。
- 内存方面
- 规则:内存申请前,必须对申请内存大小进行合法性校验;内存分配后必须判断是否成功;禁止引用未初始化的内存;内存释放之后立即赋予新值;禁止使用realloc()函数。
- 文件输入/输出方面
- 规则:创建文件时必须显式指定合适的文件访问权限。
3. 下载地址
https://pan.baidu.com/s/1ggUc1YgITXzH-OwX-l--Mg
4. 获取提取码
关注微信公众号 陌尘聊架构,发送以下图书编号
获取百度网盘的提取码
:
1 | B0105 |
4.1. 陌尘聊架构
4.2. 示例演示
5. 特别说明
版权说明
本站所有电子书均是从公开互联网中收集而来。
若部分书籍有涉及版权问题,请关注微信公众号陌尘聊架构
,后台私信我,并提供相应的版权说明,我会删除对应的书籍。
分享你的电子书
如果你有好的电子书愿意分享,欢迎微信公众号(陌尘聊架构
)私信联系我,我将会把它分享到本站。