黑客攻防技术宝典(十一)

11.1 逻辑缺陷的本质

用编程语言编写代码就是把一个复杂的进程分解成一些简单而又互相独立的逻辑步骤。
Web应用程序中的逻辑缺陷各不相同,它们包括代码中简单的错误,以及几种应用程序核心组件互操作方面的及其复杂的漏洞。
逻辑缺陷表现为设计者或开发者在思考过程中做出的特殊假设存在明显或隐含的错误。

11.2 现实中的逻辑缺陷

  1. 征求提示——将应用程序作为“加密提示”,以加密任意值
  2. 欺骗密码修改——不需填写现有密码即可进行修改
  3. 直接结算——为按应用逻辑进行访问
  4. 修改保险单——提交额外参数
  5. 入侵银行——代码组件复用导致信息泄露
  6. 规避交易规则——未对负数进行检测
  7. 获得大幅折扣——程序逻辑错误
  8. 避免转义——未对转义符号本身进行转义
  9. 避开输入确认——对输入进行先转义,后截断,可能导致错误
  10. 滥用搜索功能——通过搜索可获得未授权访问的信息
  11. 利用调试消息—— 错误机制泄露隐私信息
  12. 与登录机制竞赛——应用程序使用静态存储保存应根据独立线程或会话保存的信息,导致进程错误

11.3 避免逻辑缺陷

  • 确保应用程序各方面设计信息清楚、详细地记录在文档中
  • 所有源代码提供清晰的注释
  • 考虑设计过程中的每一个假设,并想象假设被违背的情况
  • 考虑应用程序如何处理用户的反常行为输入
  • 不同组件与应用程序质检的相互依赖和互操作可能造成的不利影响
  • 不要想象用户提交的输入
  • 根据会话确定用户身份与权限
  • 根据不同用户权限保留搜索索引

11.4 小结

11.5 问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值