posts - 108,comments - 56,trackbacks - 0
          轉自:http://www.ibm.com/developerworks/cn/security/buffer-defend/index.html
          函數 嚴重性 解決方案
          gets 最危險 使用 fgets(buf, size, stdin)。這幾乎總是一個大問題!
          strcpy 很危險 改為使用 strncpy。
          strcat 很危險 改為使用 strncat。
          sprintf 很危險 改為使用 snprintf,或者使用精度說明符。
          scanf 很危險 使用精度說明符,或自己進行解析。
          sscanf 很危險 使用精度說明符,或自己進行解析。
          fscanf 很危險 使用精度說明符,或自己進行解析。
          vfscanf 很危險 使用精度說明符,或自己進行解析。
          vsprintf 很危險 改為使用 vsnprintf,或者使用精度說明符。
          vscanf 很危險 使用精度說明符,或自己進行解析。
          vsscanf 很危險 使用精度說明符,或自己進行解析。
          streadd 很危險 確保分配的目的地參數大小是源參數大小的四倍。
          strecpy 很危險 確保分配的目的地參數大小是源參數大小的四倍。
          strtrns 危險 手工檢查來查看目的地大小是否至少與源字符串相等。
          realpath 很危險(或稍小,取決于實現) 分配緩沖區大小為 MAXPATHLEN。同樣,手工檢查參數以確保輸入參數不超過 MAXPATHLEN。
          syslog 很危險(或稍小,取決于實現) 在將字符串輸入傳遞給該函數之前,將所有字符串輸入截成合理的大小。
          getopt 很危險(或稍小,取決于實現) 在將字符串輸入傳遞給該函數之前,將所有字符串輸入截成合理的大小。
          getopt_long 很危險(或稍小,取決于實現) 在將字符串輸入傳遞給該函數之前,將所有字符串輸入截成合理的大小。
          getpass 很危險(或稍小,取決于實現) 在將字符串輸入傳遞給該函數之前,將所有字符串輸入截成合理的大小。
          getchar 中等危險 如果在循環中使用該函數,確保檢查緩沖區邊界。
          fgetc 中等危險 如果在循環中使用該函數,確保檢查緩沖區邊界。
          getc 中等危險 如果在循環中使用該函數,確保檢查緩沖區邊界。
          read 中等危險 如果在循環中使用該函數,確保檢查緩沖區邊界。
          bcopy 低危險 確保緩沖區大小與它所說的一樣大。
          fgets 低危險 確保緩沖區大小與它所說的一樣大。
          memcpy 低危險 確保緩沖區大小與它所說的一樣大。
          snprintf 低危險 確保緩沖區大小與它所說的一樣大。
          strccpy 低危險 確保緩沖區大小與它所說的一樣大。
          strcadd 低危險 確保緩沖區大小與它所說的一樣大。
          strncpy 低危險 確保緩沖區大小與它所說的一樣大。
          vsnprintf 低危險 確保緩沖區大小與它所說的一樣大。
          posted on 2007-07-10 11:46 破繭而出 閱讀(2048) 評論(0)  編輯  收藏 所屬分類: C/C++
          主站蜘蛛池模板: 龙岩市| 安国市| 台北市| 麻江县| 栾川县| 祁连县| 如皋市| 高密市| 千阳县| 敖汉旗| 东宁县| 缙云县| 安龙县| 密云县| 滦南县| 丰镇市| 巴彦淖尔市| 志丹县| 龙陵县| 昌邑市| 榆树市| 东乌| 永州市| 开封市| 综艺| 封丘县| 廊坊市| 开平市| 寿阳县| 长顺县| 海林市| 汨罗市| 忻州市| 建瓯市| 攀枝花市| 巩留县| 武邑县| 虹口区| 衡南县| 花垣县| 保靖县|