试题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);
}
刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
试题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语言函数库、程序指针完整性检查、堆栈向高地址方向增长等。
缓冲区溢出是一种常见的安全漏洞,可以通过正确的系统管理和软件开发策略来防范。系统管理方面,关闭不必要的特权程序并及时打补丁是关键。在软件开发方面,正确编写代码是基础,此外还可以通过设置缓冲区不可执行、改写易导致溢出的函数、进行程序指针完整性检查以及改变堆栈生长方向等方法来增强防护。同时,利用编译器的边界检查和程序完整性检查也是有效的保护手段。
让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!
