软件是一种典型的以有效的方式操纵数据的书面形式的产品。这些数据可以是文本,图像,视频或声音;但是,就程序而言,本质上它只是一串数据——通常以字节(8位数据)的形式代表某些意义(例如,颜色或文本字符)。当一个程序员申明一个缓冲区时,非常容易申请一个可能不适合程序后来的指针使用的缓冲区,或者可能会在没有很充分地验证输入时接受超出缓冲区大小的数据。这就涉及到缓冲区溢出的问题,本手册将围绕这一问题展开讲解。
许多流行的语言,例如C和C + +,留给程序员很大的自由度——比如让程序员明确申明缓冲区为一定的大小。那么什么是缓冲区溢出呢?它对我们的软件程序应用会带来什么样的危害呢?
了解了缓冲区溢出之后,你是否想更进一步的深入理解它的发生原理呢?目前的软件市场上这种情况呈现怎样的趋势呢?
现在我们完全理解了缓冲区溢出进行的原理,那么我们该怎样在自己的程序中避免它的发生呢?还有,我们应该怎样防御来自外界的缓冲区溢出的攻击呢?下面将向你介绍相关的应对策略。
专家答疑
技巧
对称加密(encryption)和非对称加密算法之间有什么区别,尤其是涉及到加密、签名和哈希(hash)时?
对有“遵从审计”历史的企业来说,建立一个以信息安全而不是遵从审计为目标的安全文化的最佳实践是什么?
对于企业密码保护,有多少无效的登录尝试会引起账户锁定,锁定的时间一般会持续多久?关于帐户锁定策略有没有可行的样本?
本周
本月