《安全编程:代码静态分析》——读书笔记

本文是《安全编程:代码静态分析》一书的读书笔记,重点关注输入合法性、缓冲区溢出、错误处理及强安全API。强调了建立可信边界、避免整数溢出、使用动态保护手段等策略,同时探讨了错误处理的最佳实践,如合理使用返回值和前向goto语句。
摘要由CSDN通过智能技术生成

最近在学代码静态分析相关的内容,就阅读了这本书,因为时间有限读得比较快速,并且第三章内容跟目前实验室关系不大所以直接跳过,选择了一些对我自己比较有意义的点做了记录。

关于输入合法性

本章讲到程序员应该保持一种怀疑一切输入正确合法性的态度。不仅仅是来自用户的输入,程序代码之外的任何资源文件都应该被怀疑。

通常需要验证的输入包括

  • 配置文件

程序的配置文件一旦被恶意修改,而程序员在使用的时候默认其合法,就可能会对整个程序造成巨大的灾难。

Apache1.3.29的mod_regex模块包含了一个缓冲区溢出漏洞,导致这个漏洞的原因是程序员过分相信自己的程序配置。

  • 数据库查询

程序员通常也会默认数据库来的数据是合法的,但实际上恶意攻击者可能使数据库的部分功能失效,比如使数据库中存在key值相同的两行,从而伪造一些数据。所以程序应该在读取数据库之以后对结果进行合法性检查。

  • 网络服务

毋庸置疑,网络数据是不可信的。但是网络数据不仅仅局限于来自网上用户的数据,有时候程序员会忘记网络服务是不可信的,例如DNS服务器和IP地址。一定不能依赖DNS服务或者IP地址进行认证。

OS X操作系统曾经的软件更新程序运行只通过发送一个简单的“GET“请求来调用swscan.apple.com网站上的数据,这种不尽行认证的方式使得其他人伪装成Apple的服务器非常容易

  • 命令行参数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值