<pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    Obsolete

                    ABSTRACT

                    使用不推薦使用的或過時的函數可能表明存在忽略的代碼。

                    EXPLANATION

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

                    — 為了改進該編程語言。

                    — 對操作的有效性、安全性有更深一步的了解。

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

                    在編程語中,函數會經常被刪除或由新的替代函數所取代,因為新的函數能以我們所期望的方式從多種角度執行相同的任務。

                    示例:以下代碼使用了不被推薦的函數 getpw() 來檢驗明文密碼是否與用戶加密密碼相匹配。如果密碼是有效的,則函數將 result 設為1;如果無效,將其設為 0。


                    ...
                    getpw(uid, pwdline);
                    for (i=0; i<3; i++){
                    cryptpw=strtok(pwdline, ":");
                    pwdline=0;
                    }
                    result = strcmp(crypt(plainpw,cryptpw), cryptpw) == 0;
                    ...


                    雖然該代碼通常能正確運行,但是從安全的角度來說,使用 getpw() 函數存在問題,因為它可能會使傳遞給第二個參數的緩沖區溢出。因此,由于這一漏洞,我們將使用 getpwuid() 函數來代替 getpw() 函數,雖然 getpwuid() 函數看上去與 getpw() 沒什么不同,但是它會返回一個指向靜態分配結構的指針,這將有助于減小安全上的風險。

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

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

                      <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
                      <pre id="vvttv"></pre>

                        <p id="vvttv"></p>

                            <p id="vvttv"></p>

                                  <p id="vvttv"></p>

                                  <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                                    <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                                      <p id="vvttv"></p>

                                      这里只有精品视频