0


C语言编程安全规范

  1. 目的 本规范旨在加强编程人员在编程过程中的安全意识,建立编程人员的攻击者思维,养成安全编码的习惯,编写出安全可靠的代码。 2 宏 2.1 用宏定义表达式时,要使用完备的括号在这里插入图片描述 2.2 使用宏时,不允许参数发生变化在这里插入图片描述 3 变量 3.1 所有变量在定义时必须赋初值 变量声明赋予初值,可以避免由于编程人员的疏忽导致的变量未初始化引用。在这里插入图片描述 4 表达式 4.1 浮点变量不可使用“==”或“!=”与任何数字比较。 4.2 逻辑运算符 && 或 || 的右手操作数不能包含副作用在这里插入图片描述4.3 不允许对有符号、浮点数进行位操作在这里插入图片描述 控制语句 5.1 避免 goto 语句 避免使用 goto 语句,如特殊情况需要使用,先考虑使用 do {}while(0)语句替代。在这里插入图片描述 6 函数 6.1 函数功能要专一 一个函数只做一件事情,如果函数体代码量过大,要重新检查是否需要将函数进行拆分,保持函数 的内聚性。 6.2谨慎使用不可重入函数 要实现可重入函数而非不可重入函数:在函数体内使用局部变量,避免使用静态变量和全局变量。 如果函数体内使用到全局变量或静态变量,要对其进行保护。不可重入函数在多线程环境下其执行 结果不能达到预期效果,需谨慎使用。 6.3 减少函数本身或函数间的递归调用 递归调用特别是函数间的递归调用(如 A->B->C->A),影响程序的可理解性;递归调用一般都占 用较多的系统资源;递归调用对程序的测试有一定影响。故除非为某些算法或功能的实现方便,应 减少没必要的递归调用。 6.4 标准库中保留的标识符、宏和函数不能被定义、重定义在这里插入图片描述 6.5 外部函数要检查输入参数的有效性 对于外部函数要检查所有输入参数的有效性,以及非输入参数的有效性:如全局变量,静态变量。 内部函数不对参数有效性检查,由它的调用者对参数进行有效性检查。在这里插入图片描述 6.6 防止将函数的参数作为工作变量 防止将函数的参数作为工作变量,对必须要改变参数,最好用局部变量代之,最后再将局部变量的内容赋给该参数。在这里插入图片描述在这里插入图片描述 6.7 如果一个函数可能返回错误信息,则调用后必须加以测试。 6.8 传递给库函数的值必须检查其有效性 库函数对传入的参数可能不会做有效性检查,因此程序应对传给库函数的参数进行有效性检查。 6.9 不使用不安全函数 不要使用安全函数,避免给系统造成不稳定性。如果不要使用一些已形成共识的 C 标准库的高危 险函数。在这里插入图片描述

本文转载自: https://blog.csdn.net/easybook_zhu/article/details/136292937
版权归原作者 Jason小小 所有, 如有侵权,请联系我们删除。

“C语言编程安全规范”的评论:

还没有评论