<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          悟空云課堂丨代碼安全第八期:Switch中缺少default導(dǎo)致的代碼缺陷

          共 1046字,需瀏覽 3分鐘

           ·

          2021-03-24 15:53

          Oe1B4uvkmg.jpg

          該欄目為中科天齊全新規(guī)劃的悟空云課堂,旨在科普軟件安全相關(guān)知識(shí),助力企業(yè)有效防范軟件安全漏洞,提升網(wǎng)絡(luò)安全防護(hù)能力。本期主題為Switch中缺少default導(dǎo)致的代碼缺陷的相關(guān)介紹。


          一、什么是Switch中缺少default導(dǎo)致的代碼缺陷?

          switch用在編程中,如C語(yǔ)言中它經(jīng)常跟case一起使用,是一個(gè)判斷選擇邏輯結(jié)構(gòu)。其功能就是控制流程流轉(zhuǎn)。switch語(yǔ)句的語(yǔ)法如下(switch,case,break和default是關(guān)鍵字):

          switch ( 變量表達(dá)式 )

          {

          case 常量1 :語(yǔ)句;break;

          case 常量2 :語(yǔ)句;break;

          case 常量3 :語(yǔ)句;break;

          ...

          case 常量n:語(yǔ)句;break;

          default :語(yǔ)句;break;

          }

          當(dāng)變量表達(dá)式所表達(dá)的量與其中一個(gè)case語(yǔ)句中的常量相符時(shí),就執(zhí)行此case語(yǔ)句后面的語(yǔ)句,并依次下去執(zhí)行后面所有case語(yǔ)句中的語(yǔ)句,遇到break則中斷并跳出當(dāng)前case分支執(zhí)行語(yǔ)句。如果常量表達(dá)式的量與所有case語(yǔ)句的常量值都不相符,則執(zhí)行default語(yǔ)句中的語(yǔ)句。

          那代碼在switch語(yǔ)句中沒(méi)有default語(yǔ)句,這可能會(huì)導(dǎo)致復(fù)雜的邏輯問(wèn)題并由此產(chǎn)生安全隱患。此缺陷代表了軟件開(kāi)發(fā)中的常見(jiàn)問(wèn)題,其中并非所有可能的變量值都由給定過(guò)程考慮或處理。因此,根據(jù)不良信息做出進(jìn)一步的決策,并導(dǎo)致級(jí)聯(lián)故障。這種級(jí)聯(lián)故障可能會(huì)導(dǎo)致許多安全問(wèn)題,并構(gòu)成系統(tǒng)中的重大故障。


          二、Switch中缺少default導(dǎo)致的代碼缺陷構(gòu)成條件有哪些?

          1、switch語(yǔ)句沒(méi)有default情況。


          三、Switch中缺少default導(dǎo)致的代碼缺陷會(huì)造成哪些后果?

          關(guān)鍵字:改變程序執(zhí)行邏輯;

          1、當(dāng)switch中的邏輯進(jìn)行數(shù)據(jù)檢查等,攻擊者可以注入不執(zhí)行任何case分支的數(shù)據(jù),則攻擊者可以繞過(guò)安全檢查,或?qū)е鲁绦蛱幚磉壿嬌襄e(cuò)誤。


          四、Switch中缺少default導(dǎo)致的缺陷防范和修補(bǔ)方法有哪些?

          1、switch語(yǔ)句中應(yīng)該添加default標(biāo)簽;

          2、在一些情況下,default應(yīng)該作為檢查無(wú)效輸入的情況,而不應(yīng)該作為一個(gè)表示假定的選項(xiàng)。


          五、Switch中缺少default導(dǎo)致的漏洞樣例:

          6isdnF3Fv8.png

          用Wukong軟件檢測(cè)上述程序代碼,則可以發(fā)現(xiàn)代碼中存在著case語(yǔ)句中沒(méi)有default語(yǔ)句的缺陷,如下圖:

          NVCgHZzsAU.png

          switch中缺少default在CWE中被編號(hào)為CWE-478: Missing Default Case inSwitch Statement


          瀏覽 34
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产 乱伦 av | 波多野结衣三区 | 另类性爱视频 | 激情综合网五月丁香 | 中国精品黄色视频 |