读《代码大全》--防御式编程--总结

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值