当前位置:   article > 正文

C语言编程安全规范

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 标准库的高危
    险函数。
    在这里插入图片描述
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/151262
推荐阅读
相关标签
  

闽ICP备14008679号