今天在无聊中阅读了《代码大全》第八张防御式编程,从中又收获不少。不敢独享成果,特写此文章,希望能对想学习的同学有所帮助。
本章主要介绍如下8点:
1. 保护程序免遭非法输入数据的破坏:大家可能听说过“垃圾进,垃圾出”这句话,它的意思是软件开发领域的“出门概不退换”原则,让用户自己操心自己的事情。然而对于软件产品而言,仅仅“垃圾进,垃圾出”还不够,而要做到“垃圾进,甚么都不出”、“进来垃圾,出去是出错提示”或“”不许垃圾进来。
有三种方法来处理进来垃圾的情况:
检查所有来源于外部的数据的值:外部数据源包括从文件、用户、网络或其他外部接口。检查的内容:数据类型、数据长度、数据范围、还要格外注意那些狡猾的可能是攻击你系统的数据,包括企图令缓冲区溢出的数据、注入的SQL命令、注入的HTML和XML代码、整数溢出以及传递给系统调用的数据。
检查子程序所有输入参数的值:
决定如何处理错误的输入数据:
2.断言:指在开发期间使用的、让程序在运行时进行自检的代码。断言为真,则表示程序运行正常,而断言为假,则意味着它已经在代码中发现了意料之外的错误。
断言检查如下假定:
输入参数或输出参数的取值处于预期的范围内;
子程序开始(或者结束)执行时文件或流处于打开(或关闭)的状态;
子程序开始(或结束)执行时,文件或流的读写位置处于开头(或结尾)处;
文件或流已用只读、只写或可读可写方式打卡; <
读《代码大全》--防御式编程--总结
最新推荐文章于 2024-08-02 16:22:25 发布