何谓缓冲区溢出

来源:百度文库 编辑:神马文学网 时间:2024/04/28 06:06:46
来源:CNCERT/CC      2005-03-14       简单的说就是程序对接受的输入数据没有进行有效的检测导致错误,后果可能造成程序崩溃或者是执行攻击者的命令。

  UNIX和Windows本身以及其上的许多应用程序都是用C语言编写的,C/C++语言对数组下标访问越界不做检查,是引起缓冲区溢出的根本原因。在某些情况下,如果用户输入的数据长度超过应用程序给定的缓冲区,就会覆盖其他数据区。这称作"缓冲区溢出"。缓冲区溢出大致可分为两类,一类是堆溢出(Heap Overflow),一类是栈溢出(Stack Overflow)。