<dd id="sga4y"><optgroup id="sga4y"></optgroup></dd>
<nav id="sga4y"><code id="sga4y"></code></nav>
  • <optgroup id="sga4y"></optgroup>

    Obsolete

    ABSTRACT

    使用不推薦的或過時的函數可能表示這是一段被忽略的代碼。

    EXPLANATION

    隨著編程語言的發展,有時會棄用些一些方法,原因是:

    - 為了改進該編程語言

    - 對如何有效、安全地執行操作有了更深一步的
    了解

    - 某些操作的管理規則發生了變化

    在某一種編程語言中,人們通常會放棄使用某些方法,轉而采用更新的方法。在執行同樣的任務時,新方法會采用不同的處理方式,這種方式往往比原有的方法更合理。

    例:以下代碼構造了一個字符串對象,該對象來自字節數組和確定每個 16 位 Unicode 字符中前 8 位的值。


    ...
    String name = new String(nameBytes, highByte);
    ...


    在這個例子中,構造函數可能無法正確地將字節轉換成字符,這取決于由 nameBytes 表述的編碼字符串所使用的字符集。隨著用于編碼字符串的字符集的不斷發展,這個構造函數已經過時,取而代之的是新的構造函數。新構造函數使用了名為 charset 的參數,用以對字節進行編碼,從而實現字節的轉換。

    并非所有函數都會因為存在安全漏洞而被棄用或被取代。然而,出現被棄用的函數通常表示周圍代碼已經不起作用了,有可能處于不受維護的狀況。在過去很長一段時間內,人們并沒有將軟件安全放在首位,甚至都未曾考慮過。如果程序使用了不推薦的或過時的函數,在其附近就會潛伏著安全問題。

    REFERENCES

    [1] Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 477


    Copyright 2013 Fortify Software - All rights reserved.
    (Generated from version 2013.1.1.0008 of the Fortify Secure Coding Rulepacks)
    desc.semantic.java.obsolete

    97av