數字型別的不正確轉換漏洞
本期主題為數字型別的不正確轉換導致漏洞的相關介紹。
一、什麼是數字型別的不正確轉換?
從一種資料型別轉換為另一種資料型別(例如從long到int )時,會忽略部分資料,造成精度損失,甚至產生不可預期的數值。如果在敏感的上下文中使用結果值,則可能會發生危險行為。
二、數字型別的不正確轉換構成條件有哪些?
滿足以下條件,就構成了一個該型別的安全漏洞:
將一個數值從一種型別強制轉換為另一種型別,而又超出了目標型別的表示範圍,結果就會截斷成一個完全不同的值。
三、數字型別的不正確轉換會造成哪些後果?
該程式可能會使用錯誤的數字結束並生成錯誤的結果。如果該數字用於分配資源或做出安全決策,則可能會引入漏洞。
四、數字型別的不正確轉換的防範和修補方法有哪些?
1.避免在數字型別之間進行轉換;
2.始終檢查允許的範圍。
五、數字型別的不正確轉換漏洞樣例:
用 上述程式程式碼,則可以發現程式碼中存在著“數字型別的不正確轉換” 導致的程式碼缺陷,如下圖:
數字型別的不正確轉換在CWE中被編號為CWE-681:Incorrect Conversion between Numeric Types
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2790762/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式碼安全測試第二十四期:數字型別的不正確轉換漏洞型別
- 關於mysql字元和數字型別轉換的問題研究MySql字元型別
- 變數型別轉換變數型別
- CAPL指令碼中常用到的資料型別轉換——數字型別(int/double)和字串型別(char array)指令碼資料型別字串
- lodash裡to系列之將資料轉換成數字型別實現示例詳解型別
- Go 中數字轉換字串的正確姿勢Go字串
- Pytorch變數型別轉換PyTorch變數型別
- JavaScript 字串轉換數值型別JavaScript字串型別
- keycloak~時間不正確的問題
- sfc命令引數 掃描所有保護的系統檔案的完整性,並使用正確的 Microsoft 版本替換 不正確的版本。ROS
- 對於systemverilog靜態變數和動態變數 ,描述不正確的是()。變數
- Javascript基礎:變數型別轉換JavaScript變數型別
- Python數字型別有哪些Python型別
- java- 型別-轉換:基本型別以及包裝型別的轉換Java型別
- interface{} 型別的轉換型別
- golang的型別轉換Golang型別
- CAD怎麼轉換成PDF格式?CAD轉換PDF的正確方法
- MySQL order by 排序結果不正確MySql排序
- AD模數轉換&DA數模轉換
- 型別轉換型別
- Java 正確的做字串編碼轉換Java字串編碼
- Python基礎(01):數字型別Python型別
- java中的型別轉換Java型別
- Jni CallVoidMethod回撥傳值不正確
- MySQL bit型別增加索引後查詢結果不正確案例淺析MySql型別索引
- js型別轉換JS型別
- 型別轉換(cast)型別AST
- Convert型別轉換型別
- 處理日期和時區轉換:為什麼正確的 UTC 轉換很重要
- 說說JavaScript的型別轉換JavaScript型別
- JS資料型別的轉換JS資料型別
- 淺談JavaScript的型別轉換JavaScript型別
- 瀏覽器證書機構不正確瀏覽器
- 相對論為什麼不正確呢?
- 【型別轉換】使用c#實現簡易的型別轉換(Emit,Expression,反射)型別C#MITExpress反射
- Java資料型別的顯式轉換和隱式轉換Java資料型別
- Permute 3 Mac: 高效、準確、便捷的格式轉換工具Mac
- Springboo3 Knife4j引數解析顯示不正確問題Spring