函式
嚴重性
解決方案
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低危險 確保緩衝區大小與它所說的一樣大。
c語言不安全庫 C語言 那些不安全的庫函式
c語言 那些不安全的庫函式 c和c 不能夠自動地做邊界檢查,邊界檢查的代價是效率。一般來講,c 在大多數情況下注重效率。然而,獲得效率的代價是,c 程式設計師必須十分警覺以避免緩衝區溢位問題。c語言標準庫中的許多字串處理和io流讀取函式是導致緩衝區溢位的罪魁禍首。我們有必要了解這些函式,在程式設計中...
C中不安全的函式以解決辦法彙總
這些函式由於設計的時候比較淳樸,並沒有做任何的越界檢測,主要容易 被溢位 只需要多設點檢查邊界,即安全。針對不安全函式及其解決辦法的詳細描述 第 一位公共敵人是 gets 永遠不要使用 gets 該函式從標準輸入讀入使用者輸入的一行文字,它在遇到 eof 字元或換行字元之前,不會停止讀入文字。也就是...
解決 C 不安全函式告警
錯誤 詳細資訊 c4996 scanf this function or variable may be unsafe.consider using scanf s instead.to disable deprecation,use crt secure no warnings.vs2019使用更...