核对表:防御式编程

一般事宜

1.子程序是否保护自己免遭有害输入数据的破坏?
2.你用断言来说明编程假定吗?其中包括了前条件和后条件吗?
3.断言是否只是用来说明从不应该发生的情况?
4.你是否在架构或高层设计中规定了一组特定的错误处理技术?
5.你是否在架构或高层设计中规定了是让错误处理更倾向于健壮性还是正确性?
6.你是否建立了隔离栏来遏制错误可能造成的破坏?是否减少了其他需要关注错误处理的代码的数量?
7.代码中用到的辅助调试的代码了吗?
8.如果需要启用或禁用添加的辅助助手的话,是否无需大动干戈?
9.在防御式编程时引入的代码量是否适宜---既不过多,也不过少?
10.你在开发阶段是否采用了进攻式编程来使错误难以被忽视?

异常

1.你在项目中定义了一套标准化的异常处理方案吗?
2.是否考虑过异常之外的其他替代方案?
3.如果可能的话,是否在局部处理了错误而不是把它当成一个异常抛到外部?
4.代码中是否避免了再构造函数和析构函数中抛出异常?
5.所有的异常是否都与抛出他们的子程序处于同一抽象层次上?
6.每个异常是否都包含了关于异常发生的所有背景信息?
7.代码中是否没有使用空的catch语句?(或者如果使用空的catch语句确实很合适,那么明确说明了吗?)

安全事宜

1.检查有害输入数据的代码是否也检查了故意的缓冲区溢出,sql注入,html注入,整数溢出以及其他恶意输入数据?
2.是否检查了所有的错误返回码?
3.是否捕获了所有的异常?
4.出错消息中是否避免出现有助于攻击者攻入系统所需的信息?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值