10.3知识子域:软件安全实现
10.3.1安全编码原则
CERT发布的有关C、C++、Java等语言的著名安全编码标准
OWASP发布了《OWSAP安全编码规范快速参考指南》
1.验证输入
常见的输入源如下:
(1)命令行参数
(2)环境变量
(3)文件及文件名
(4)网络数据
(5)其他来源
2.避免缓存溢出
避免缓冲区溢出,可以使用很多安全防御措施
(1)精心编程避免缓冲区溢出
(2)使用替代的安全函数或函数库
(3)基于探测方法方法,使用更新、更具安全性的编译环境,打开一些具有安全防御机制的选项
Immunix提供的StackGuard
OpenBSD提供的ProPolice
Microsoft提供的/GS选项
(4)非执行的堆栈防御
为OpenWall使用的non-exec补丁
Redhat/Fedora所使用的exec shield
3.程序内部安全
(1)程序内部接口安全
(2)异常安全处理
(3)最小化反馈
(4)避免竞争条件
(5)安全使用临时文件
4.安全调用组件
为避免调用组件带来安全问题,建议在组件安全、返回值安全以及传递数据安全等几个方面加强安全防护
(1)组件安全
(2)返回值安全
(3)传递数据安全
5.禁止使用不安全函数
注:以上内容来源于网络,如有侵权,可联系客服删除