首页 > 试题广场 >

缓冲区溢出是指当计算机向缓冲区内填充数据时超过了缓冲区本身的

[单选题]
缓冲区溢出是指当计算机向缓冲区内填充数据时超过了缓冲区本身的容量,溢出的数据覆盖了合法的数据,可能导致程序运行失败、系统崩溃、系统被恶意控制等,以下措施不能避免缓冲区溢出的是()
  • 严格检查缓冲区长度,避免将过长的数据复制到长度较小的缓冲区空间
  • 使用除C、C++外的其他高级编程语言
  • 使用安全函数,如strncpy()代替strcpy()
  • 非执行的堆栈保护,不允许执行堆栈上的代码
由于C/C++语言没有数组越界检查机制,当向局部数组缓冲区里写入的数据超过为其分配的大小时,就会发生缓冲区溢出。攻击者可利用缓冲区溢出来窜改进程运行时栈,从而改变程序正常流向,轻则导致程序崩溃,重则系统特权被窃取。
发表于 2020-11-10 09:38:51 回复(0)