基本信息
这个作业属于哪个课程 | 2022-2023-1-计算机基础与程序设计 |
---|---|
这个作业要求在哪里 | 2022-2023-1计算机基础与程序设计第15周作业 |
作业正文 | https://www.cnblogs.com/20221414youer/p/16973773.html |
实验七-缓冲区溢出总结
- 原理:缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况。这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段。这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢出会引起返回地址被重写。
*保护:
1.强制写正确的代码的方法;
2.通过操作系统使得缓冲区不可执行,从而阻止攻击者殖入攻击代码;
3.利用编译器的边界检查来实现缓冲区的保护;
4.在程序指针失效前进行完整性检查 - 我直接用过的缓冲区溢出保护函数:
scanf_s
通过添加参数限制输入字符数量从而起到保护作用。vs2022中还有很多加上了_s
的安全函数,使用时需注意。
代码问题
本周进行了实验6验收,发现一个问题:代码重复且低效。
一是具有相同的printf功能的函数写了多个,且求总分和平均分的函数分开写了;
二是重复运行求总分和平均分的函数;
改进方案:
把各个具有printf功能的函数整合成一个函数,求总分和平均分的函数整合到一起。
初始化stu[0].sum = -1。之后每次都检验它是否为负一,如是,说明求总分和平均分的函数没有被运行,再运行相应函数。
总结
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第15周 | 400/2600 | 2/21 | 40/230 |