图5.1给出了一段有漏洞的C语言代码(注:行首数字是代码行号),请间,图中代码存在哪种类型的安全漏洞?该漏洞和C语言数组的哪一个特性有关?
暂无
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
代码安全漏洞往往是系统或者网络被攻破的头号杀手。在C语言程序开发中,由于C语言自身语法的一些特性,很容易出现各种安全漏洞。因此,应该在C程序开发中充分利用现有开发工具提供的各种安全编译选项,减少出现漏洞的可能性。
图5.1给出了一段有漏洞的C语言代码(注:行首数字是代码行号),请间,图中代码存在哪种类型的安全漏洞?该漏洞和C语言数组的哪一个特性有关?
图5.2给出了C程序的典型内存布局,请回答如下问题。
(1)请问图5.1的代码第9行的变量authenticated保存在图5.2所示的哪个区域中?
(2)请问stack的两个典型操作是什么?
(3)在图5.2中的stack区域保存数据时,其地址增长方向是往高地址还是往低地址增长方向?
(4)对于图5.1代码中的第9行和第10行代码的两个变量,哪个变量对应的内存地址更高?
微软的Visual Studio提供了很多安全相关的编译选项,图5.3给出了图5.1中代码相关的工程属性页面的截图。请回答以下问题。
(1)请问图5.3中哪项配置可以有效缓解上述代码存在的安全漏洞?
(2)如果把图5.1中第10行代码改为char buffer[4],图5.3的安全编译选项是否还起作用?
(3)模糊测试是否可以检测出上述代码的安全漏洞?