前言
目的
本规范旨在加强编程人员在编程过程中的安全意识,建立编程人员的攻击者思维,养成安全编码的习惯,编写出安
全可靠的代码。
适用范围
C/C++语言编程人员都应遵循本规范所规定的内容。
攻击者思维
编程过程中应该时刻保持以下的假设:
1. 程序所处理的所有外部数据都是不可信的攻击数据
2. 攻击者时刻试图监听、篡改、破坏程序运行环境、外部数据
安全编码基本思想
基于以上的假设,得出安全编码基本思想:
1. 程序在处理外部数据时必须经过严格的合法性校验 编程人员在处理外部数据过程中必须时刻保持这种思维意
识,不能做出任何外部数据符合预期的假设,外部数据必须经过严格判断后才能使用。编码人员必须在这种
严酷的攻击环境下通过遵守这一原则保证程序的执行过程符合预期结果。
2. 尽量减少代码的攻击面 代码的实现应该尽量简单,避免与外部环境做多余的数据交互,过多的攻击面增加了
被攻击的概率,尽量避免将程序内部的数据处理过程暴露到外部环境。
3. 通过防御性的编码策略来弥补潜在的编码人员的疏忽 粗心是人类的天性。由于外部环境的不确定性,以及编
码人员的经验、习惯的差异,代码的执行过程很难达到完全
2023-12-08 09:31:48
911KB
编程语言
1