📖 为了提升软件产品的可靠性、健壮性、可移植性和可维护性,我们整理了一份全面的C/C++编程安全规范指南。这份指南由360质量工程部主导,总结了编程时需要注意的各种问题,为制定编程规范提供了依据,也可用于代码审计或相关培训。📌 主要内容: c-cpp-rules.md: 详细说明了C/C++的规则 c-cpp-rules.json: 结构...
为了更好地保障代码质量,提升开发、维护效率,我们郑重推出《安规集》的最新版本 —— 一套专为程序员打造的安全编程指南。 全面升级,规则更完善 《安规集 1.4.0》共收录532条精心编纂的规则,不仅基于C++17标准进行了全面的补充和订正,而且覆盖了代码存储、设计、编写以及构建等各个环节,确保您的编程实践始终与行业...
本次开源涉及 C/C++、JavaScript、Node、Go、Java、Python 六门编程语言的安全指南。 项目主页: https://github.com/Tencent/secguide 一、项目背景 近年来,无论是 DevSecOps,还是 Google SRE 的可靠和安全性理念,都提倡“安全需要每个工程师的参与”。其中涉及的“安全左移”理念也再次被推向前台,获得关注。 除...
那位写出 Heartbleed 漏洞的 C 程序员,如果他的案头有《C 陷阱与缺陷》这本书(也许已经有了),他能够仔细看上几个来回,就不会掉到这么危险的坑里去了。 ▲选择这本书,拒绝C编程掉坑 接下来我们就从避免语法语义错误,使用指针注意事项,以及做好可移植三个方面,来给出 ...
通用安全指南1 C/C++使用错误1.1 【必须】不得直接使用无长度限制的字符拷贝函数不应直接使用legacy的字符串拷贝、输入函数,如strcpy、strcat、sprintf、wcscpy、mbscpy等,这些函数的特征是:可以输出一长串字符串,而不限制长度。如果环境允许,应当使用其_s安全版本替代,或者使用n版本函数(如:snprintf,vsnprintf)。若...
第2章 常见高危缺陷与安全编码原则相对应的形式 5 第3章 API滥用(APIAbuse) 7 3.1. 危险函数(DangerousFunction) 7 3.2. 目录约束(DirectoryRestriction) 9 3.3. 堆检测(HeapInspection) 10 3.4. 遗漏检查间接空值(MissingCheckagainstNull) 11 3.5. 身份验证(OftenMisused:Authentication) 12 ...
相关指南: CERT.EXP09-C. Use sizeof to determine the size of a type or variable CSEC Reports 规则 3.2:禁止不正确地重定义或封装安全函数禁止直接使用宏的方式重定义安全函数时,或以函数封装的形式重新包装安全函数或危险函数时,忽略安全函数的 destMax参数,或用count参数直接代替destMax参数。 错误示例1:...
高质量C++/C 编程指南一 首先,强烈推荐林锐博士这本《高质量C++/C 编程指南》,请花一两个小时认真阅读这本百页经书,你将会获益匪浅。草草看过,个人收获记录如下。 头文件的作用略作解释: (1)通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只...
《360 安全规则集合》简称《安规集》,是一套详细的 C/C++ 安全编程指南,由 360 集团质量工程部编著,将编程时需要注意的问题总结成若干规则,可为制定编程规范提供依据,也可为代码审计或相关培训提供指导意见,旨在提升软件产品的可靠性、健壮性、可移植性以及可维护性,从而提升软件产品的综合安全性能。 ...
如果正确,内联函数的代码就会直接替换函数调用,于是省去了函数调用的开销。这个过程与预处理有显著的不同,因为预处理器不能进行类型安全检查,或者进行自动类型转换。假如内联函数是成员函数,对象的地址(this)会被放在合适的地方,这也是预处理器办不到的。