程式碼安全測試第二十一期:從finally塊中return漏洞
一、什麼是從finally塊中return?
Java中的finally一般與try一起使用,在程式進入try塊之後,無論程式是因為異常而中止或其它方式返回終止的,finally塊的內容一定會被執行。
程式碼在finally塊中有一個return語句,這將導致try塊中的任何丟擲異常被丟棄。
二、從finally塊中return漏洞構成條件有哪些?
滿足以下條件,就構成了一個該型別的安全漏洞:
1、程式碼在finally塊中有一個return語句。try塊中的異常因finally塊中的return無法到達exit塊被丟擲。
三、從finally塊中return漏洞會造成哪些後果?
關鍵詞:改變執行邏輯;
本該丟擲的異常或其它處理由於finally塊中的return先行執行而被丟棄,所以導致上層程式無法執行對應的程式碼,產生問題。
四、從finally塊中return漏洞的防範和修補方法有哪些?
不要在finally塊中使用return語句。finally塊應該有“cleanup”程式碼。
五、從finally塊中return漏洞樣例:
用悟空 靜態程式碼檢測工具分析上述程式程式碼,則可以發現程式碼中存在著“從finally塊中return非正常退出” 導致的 程式碼缺陷,如下圖:
從finally塊中return在CWE中被編號為CWE-584: Return Inside Finally Block
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2777208/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式碼安全測試第十一期:記憶體洩漏漏洞記憶體
- 程式碼安全測試第二十期:資源未關閉/釋放漏洞
- 程式碼安全測試第二十二期:HTTP響應拆分漏洞HTTP
- 程式碼安全測試第一期:什麼是SQL隱碼攻擊漏洞?SQL
- 程式碼安全測試第二十八期:未使用的變數缺陷漏洞變數
- 程式碼安全測試第二十九期:通用異常捕獲宣告缺陷漏洞
- 程式碼安全測試第二十五期:陣列宣告為public final static漏洞缺陷陣列
- 程式碼安全測試第二十四期:數字型別的不正確轉換漏洞型別
- java exception and finally returnJavaException
- 程式碼安全測試第二十三期:對XML外部實體引用的不當限制漏洞XML
- 程式碼安全測試第十二期:LDAP注入漏洞LDA
- 程式碼安全測試第十五期:跨站指令碼漏洞指令碼
- 程式碼安全測試第六期:XPath注入漏洞
- 程式碼安全測試第七期:不安全的反射漏洞缺陷反射
- 程式碼安全測試第五期:OS命令注入漏洞
- 程式碼安全測試第十八期:呼叫System.exit()存在安全漏洞
- 【搞定面試官】try中有return,finally還會執行嗎?面試
- 程式碼安全測試第十期:日誌偽造漏洞
- 異常-面試題之final,finally和finalize的區別,如果在finally之前有return面試題
- 程式碼安全測試第二期:URL重定向(跳轉)漏洞
- 程式碼安全測試第十六期:使用不安全的隨機值漏洞隨機
- finally語句在return執行之後,return返回之前執行
- 程式碼安全 兩種程式碼漏洞
- 從應用安全到程式碼安全 確保軟體安全不能忽視檢測API漏洞!API
- 程式碼安全測試第十三期:敏感資訊的明文傳輸漏洞
- 程式碼安全測試第四期:可逆的單向雜湊漏洞
- 網站安全測試之APP滲透測試漏洞網站APP
- 網站滲透測試安全檢測漏洞網站
- 程式碼安全測試第九期:Switch中省略了break語句導致的程式碼缺陷漏洞
- 程式碼安全測試第三期:路徑遍歷漏洞的防範與檢測
- 程式碼安全測試第二十六期:透過錯誤訊息導致的資訊暴露
- 程式碼安全測試第十九期:用不安全的授權建立臨時檔案漏洞
- 網站漏洞測試php程式碼修復詳情網站PHP
- 網站滲透測試漏洞分析程式碼架構網站架構
- 區塊鏈app安全防護 滲透測試中發現的越權漏洞分析與修復區塊鏈APP
- 軟體測試與程式碼安全詳解
- 第二十一期 安全+ 沙龍之軟體安全成功舉辦!(線上)
- 滲透測試之CSRF程式碼漏洞的檢測與加固方案