刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

试题4:( 16分)

某程序的部分代码如下:

void f1(char * in) { 

char buffer[16];  

strcpy(buffer, in); 

}  

void main() { 

  char mystring[255]; 

  int i;  

  for( i = 0; i < 255; i++) 

    mystring [i] = 'A';  

  f1(mystring); 

}

描述上述代码存在的缓冲区溢出风险并给出改进建议。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

系统管理防范策略:关闭不必要特权程序、及时打好系统补丁。

软件开发的防范策略:正确编写代码、缓冲区不可执行、改写C语言函数库、程序指针完整性检查、堆栈向高地址方向增长等。

解析:

缓冲区溢出是一种常见的安全漏洞,可以通过正确的系统管理和软件开发策略来防范。系统管理方面,关闭不必要的特权程序并及时打补丁是关键。在软件开发方面,正确编写代码是基础,此外还可以通过设置缓冲区不可执行、改写易导致溢出的函数、进行程序指针完整性检查以及改变堆栈生长方向等方法来增强防护。同时,利用编译器的边界检查和程序完整性检查也是有效的保护手段。

创作类型:
原创

本文链接:描述上述代码存在的缓冲区溢出风险并给出改进建议。

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share