程式碼安全測試第二十四期:數字型別的不正確轉換漏洞
一、什麼是數字型別的不正確轉換?
從一種資料型別轉換為另一種資料型別(例如從long到int )時,會忽略部分資料,造成精度損失,甚至產生不可預期的數值。如果在敏感的上下文中使用結果值,則可能會發生危險行為。
二、數字型別的不正確轉換構成條件有哪些?
滿足以下條件,就構成了一個該型別的安全漏洞:
將一個數值從一種型別強制轉換為另一種型別,而又超出了目標型別的表示範圍,結果就會截斷成一個完全不同的值。
三、數字型別的不正確轉換會造成哪些後果?
該程式可能會使用錯誤的數字結束並生成錯誤的結果。如果該數字用於分配資源或做出安全決策,則可能會引入漏洞。
四、數字型別的不正確轉換的防範和修補方法有哪些?
1.避免在數字型別之間進行轉換;
2.始終檢查允許的範圍。
五、數字型別的不正確轉換漏洞樣例:
用悟空 靜態程式碼檢測工具分析 上述程式程式碼,則可以發現程式碼中存在著“數字型別的不正確轉換” 導致的 程式碼缺陷,如下圖:
數字型別的不正確轉換在CWE中被編號為CWE-681:Incorrect Conversion between Numeric Types
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2777799/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 數字型別的不正確轉換漏洞型別
- 程式碼安全測試第二十八期:未使用的變數缺陷漏洞變數
- 程式碼安全測試第四期:可逆的單向雜湊漏洞
- 程式碼安全測試第二十期:資源未關閉/釋放漏洞
- 程式碼安全測試第二十二期:HTTP響應拆分漏洞HTTP
- 程式碼安全測試第二十一期:從finally塊中return漏洞
- 程式碼安全測試第二十九期:通用異常捕獲宣告缺陷漏洞
- 程式碼安全測試第二十五期:陣列宣告為public final static漏洞缺陷陣列
- 程式碼安全測試第十四期:使用已破解或危險的加密演算法導致的漏洞加密演算法
- 程式碼安全測試第二十三期:對XML外部實體引用的不當限制漏洞XML
- 程式碼安全測試第二期:URL重定向(跳轉)漏洞
- 程式碼安全測試第七期:不安全的反射漏洞缺陷反射
- 程式碼安全測試第十二期:LDAP注入漏洞LDA
- 程式碼安全測試第十五期:跨站指令碼漏洞指令碼
- 關於mysql字元和數字型別轉換的問題研究MySql字元型別
- 程式碼安全測試第六期:XPath注入漏洞
- CAPL指令碼中常用到的資料型別轉換——數字型別(int/double)和字串型別(char array)指令碼資料型別字串
- 程式碼安全測試第五期:OS命令注入漏洞
- 從應用安全到程式碼安全 確保軟體安全不能忽視檢測API漏洞!API
- 程式碼安全測試第十六期:使用不安全的隨機值漏洞隨機
- 程式碼安全測試第十八期:呼叫System.exit()存在安全漏洞
- easycode生成程式碼報錯:配置資訊不正確
- 程式碼安全測試第十期:日誌偽造漏洞
- 程式碼安全測試第十一期:記憶體洩漏漏洞記憶體
- 程式碼安全測試第十三期:敏感資訊的明文傳輸漏洞
- 程式碼安全測試第三期:路徑遍歷漏洞的防範與檢測
- 程式碼安全測試第九期:Switch中省略了break語句導致的程式碼缺陷漏洞
- 程式碼安全 兩種程式碼漏洞
- 程式碼安全測試第二十六期:透過錯誤訊息導致的資訊暴露
- Java 正確的做字串編碼轉換Java字串編碼
- 程式碼安全測試第十九期:用不安全的授權建立臨時檔案漏洞
- 程式碼安全測試第一期:什麼是SQL隱碼攻擊漏洞?SQL
- 程式碼塊,資料型別的相互轉換,集合資料型別
- 滲透測試之CSRF程式碼漏洞的檢測與加固方案
- Could not load file or assembly or one of its dependencies 試圖載入格式不正確的程式
- C++ const void * 型別轉換簡單測試C++型別
- 變數型別轉換變數型別
- 安全測試和滲透測試的區別