试题五(共14分)
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】代码安全漏洞往往是系统或者网络被攻破的头号杀手。在C语言程序开发中,由于C语言自身语法的一些特性,很容易出现各种安全漏洞。因此,应该在C程序开发中充分利用现有开发工具提供的各种安全编译选项,减少出现漏洞的可能性。
刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
试题五(共14分)
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】代码安全漏洞往往是系统或者网络被攻破的头号杀手。在C语言程序开发中,由于C语言自身语法的一些特性,很容易出现各种安全漏洞。因此,应该在C程序开发中充分利用现有开发工具提供的各种安全编译选项,减少出现漏洞的可能性。
【问题3】(6分)
微软的Visual Studio提供了很多安全相关的编译选项,图5.3给出了图5.1中代码相关的工程属性页面的截图。请回答以下问题。

图5.3
(1)请问图5.3中哪项配置可以有效缓解上述代码存在的安全漏洞?
(2)如果把图5.1中第10行代码改为char buffer[4],图5.3的安全编译选项是否还起作用?
(3)模糊测试是否可以检测出上述代码的安全漏洞?
(1)Security Check
(2)不起作用
(3)能
(1)根据说明和题目描述,代码安全漏洞特别是缓冲区溢出是C语言程序开发中常见的问题。在图5.3中,Security Check或GS选项是为了检查缓冲区溢出而设置的。启用此选项后,编译器可以帮助检查并减少缓冲区溢出的风险,从而缓解上述代码存在的安全漏洞。
(2)如果将图5.1中的第10行代码改为char buffer[4],这仍然是一个小的缓冲区,容易受到溢出攻击。Visual Studio的Security Check(GS)选项主要针对大于一定大小的缓冲区,对于较小的缓冲区,如本题中的buffer[4],可能无法提供足够的保护。因此,即使改变了数组大小,Security Check(GS)选项仍然不起作用。
(3)模糊测试是一种软件测试技术,它通过向目标系统提供非预期的输入来检测软件中的漏洞。这种方法不需要理解代码的具体实现,就能发现潜在的安全问题。因此,模糊测试可以检测出上述代码的安全漏洞。但需要注意的是,模糊测试只能发现漏洞,不能确定问题在代码中的具体位置。
本文链接:【问题3】(6分) 微软的Visual Studio提供了很多安全相关的编译选项,图5.3给出了图5
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!
