陣列宣告為public final static缺陷
本期主題為陣列宣告為public final static缺陷漏洞的相關介紹。
一、什麼是陣列宣告為public final static缺陷?
程式宣告一個public final static的陣列,這不足以防止修改陣列的內容。
二、陣列宣告為public final static缺陷構成條件有哪些?
因為陣列是可變物件,所以最終約束要求陣列物件本身只分配一次,但不保證陣列元素的值。由於陣列是public的,因此惡意程式可以更改儲存在陣列中的值。因此,在大多數情況下,宣告為public final static的陣列是一個錯誤。
三、陣列宣告為public final static缺陷會造成哪些後果?
程式資料會被修改,可能產生不利影響。
四、陣列宣告為public final static缺陷的防範和修補方法有哪些?
大部分情況下,陣列宣告應為private。
五、陣列宣告為public final static缺陷樣例:
用 上述程式程式碼,則可以發現程式碼中存在著“陣列宣告為public final static缺陷” 導致的程式碼缺陷,如下圖:
陣列宣告為public final static缺陷在CWE中被編號為CWE-582:Array Declared Public, Final, and Static
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2790535/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式碼安全測試第二十五期:陣列宣告為public final static漏洞缺陷陣列
- CWE-500:宣告為public static的域沒有標記final缺陷簡介
- java中的Static、final、Static final各種用法Java
- static/final/常量模式模式
- static,private,final,abstract,protected
- 反射修改 static final 變數反射變數
- 為什麼Java的main方法必須是public static void?JavaAI
- Java陣列宣告建立和使用以及多維陣列、Arrays類、稀疏陣列Java陣列
- java 陣列的定義(宣告)方法Java陣列
- final修飾和static final修飾的區別
- C++ 陣列宣告和初始化C++陣列
- TS定義陣列 ts宣告函式陣列函式
- this,構造器,static,final,單例模式單例模式
- java中的static和final關鍵字Java
- Java基礎——final和static關鍵字Java
- final關鍵字和static關鍵字
- 程式碼缺陷解讀:通用異常捕獲宣告缺陷漏洞
- c語言中陣列的宣告與初始化C語言陣列
- PHP陣列轉換為js陣列PHP陣列JS
- 找不到 main 方法, 請將 main 方法定義為: public static void main(String[] args)AI
- 陣列二:使用陣列可變函式為陣列排序陣列函式排序
- Java學習筆記【1】陣列的宣告和建立Java筆記陣列
- 漏洞分析——變數缺陷漏洞及通用異常捕獲宣告缺陷漏洞變數
- java大陣列劃分為若干小陣列Java陣列
- final與static關鍵字的區別?(skycto JEEditor)
- php class中public,private,protected,static的區別,以及例項PHP
- 將字串陣列轉換為浮點數陣列字串陣列
- 陣列的三種宣告方式總結、多維陣列的遍歷、Arrays類的常用方法總結陣列
- Flutter 知識梳理 (Dart) - Dart 中 static, final, const 區別FlutterDart
- Java 定義長度為 0 的陣列 / 空陣列Java陣列
- Python多個陣列合並(拼接)為一個陣列Python陣列
- 將兩個有序陣列合併為一個有序陣列陣列
- 為什麼處理排序陣列比未排序陣列快排序陣列
- Leetcode 陣列中和為給定值的最長子陣列LeetCode陣列
- [BUG反饋]onethink 無法載入Public/static/bootstrap/css/bootstrap.cssbootCSS
- json字串 轉換為陣列JSON字串陣列
- 和為 K 的子陣列陣列
- JavaScript 字串轉換為陣列JavaScript字串陣列