<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            Obsolete

            ABSTRACT

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

            EXPLANATION

            隨著編程語言的發展,一些函數有時會被棄用,原因如下:

            - 為了改進該編程語言

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

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

            在一種編程語言中,舊函數會被新函數所替代,比起舊函數,新函數更能以我們所期望的方式執行任務。

            例如:下面的代碼會構造一個新的 SqlClientPermission 對象,這個對象規定了用戶可以使用的連接到數據庫的方式。在這個例子中,程序把 false 作為第二個參數傳遞給構造函數(控制著是否允許用戶用空密碼進行連接)。如果傳遞的參數值為 false,則說明不允許使用空密碼。


            ...
            SCP = new SqlClientPermission(pstate, false);
            ...


            然而,因為作為第一個參數傳輸傳遞的 PermissionState 對象代替了任何傳遞給第二個參數的值,所以這個構造函數允許使用空密碼連接到數據庫,這與第二個條件相矛盾。要禁止使用空密碼,程序應該把 PermissionState.None 傳遞給構造函數的第一個參數。由于其功能尚不明確,因此不贊成采用 SqlClientPermission 構造函數的“雙參數”版本,而建議采用“單參數”版本(與“雙參數”版本功能相同但是避免了被誤譯的風險)。

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

            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.dotnet.obsolete

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线