网络安全原理与技术(第二版) 教学课件 ppt 作者 冯登国 徐静chapter6b.pptVIP

  • 2
  • 0
  • 约6.67千字
  • 约 47页
  • 2019-07-05 发布于未知
  • 举报

网络安全原理与技术(第二版) 教学课件 ppt 作者 冯登国 徐静chapter6b.ppt

缓冲区溢出 Buffer Overflow 缓冲区:程序运行期间,在内存中分配的一个连续的区域,用于保存包括字符数组在内的各种数据类型。 溢出:所填充的数据超出了原有缓冲区的边界,并非法占据了另一段内存区域。 缓冲区溢出:由于填充数据越界而导致程序原有流程的改变,黑客借此精心构造填充数据,让程序转而执行特殊的代码,最终获得系统的控制权。 原因 造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。缓冲区溢出就是将一个超过缓冲区长度的字符串置入缓冲区的结果. Void function(char *str) { char buffer[16]; strcpy(buffer,str); } 原因 在C语言中,指针和数组越界不保护是Buffer overflow的根源,而且,在C语言标准库中就有许多能提供溢出的函数,如strcat(), strcpy(), sprintf(), vsprintf(), bcopy(), gets()和scanf() 编程的问题都可以在开发阶段防止,事实上,并没有这么简单 有些开发人员没有意识到问题的存在 有些开发人员不愿意使用边界检查,因为会影响效率和性能 另一方面,许多遗留下来的代码还很多 后果 向一个有限空间的缓冲区中置入过长的字符串可能会带来两种后果 一是过长的字符串覆盖了相邻的存储单元,引起程序运行失败,

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档