不安全函数(转)
這些函數(shù)由于設(shè)計(jì)的時(shí)候比較淳樸,并沒(méi)有做任何的越界檢測(cè),主要容易”被溢出”,只需要多設(shè)點(diǎn)檢查邊界,即安全。
| gets | 最危險(xiǎn) | 使用 fgets(buf, size, stdin)。這幾乎總是一個(gè)大問(wèn)題! |
| strcpy | 很危險(xiǎn) | 改為使用 strncpy。 |
| strcat | 很危險(xiǎn) | 改為使用 strncat。 |
| sprintf | 很危險(xiǎn) | 改為使用 snprintf,或者使用精度說(shuō)明符。 |
| scanf | 很危險(xiǎn) | 使用精度說(shuō)明符,或自己進(jìn)行解析。 |
| sscanf | 很危險(xiǎn) | 使用精度說(shuō)明符,或自己進(jìn)行解析。 |
| fscanf | 很危險(xiǎn) | 使用精度說(shuō)明符,或自己進(jìn)行解析。 |
| vfscanf | 很危險(xiǎn) | 使用精度說(shuō)明符,或自己進(jìn)行解析。 |
| vsprintf | 很危險(xiǎn) | 改為使用 vsnprintf,或者使用精度說(shuō)明符。 |
| vscanf | 很危險(xiǎn) | 使用精度說(shuō)明符,或自己進(jìn)行解析。 |
| vsscanf | 很危險(xiǎn) | 使用精度說(shuō)明符,或自己進(jìn)行解析。 |
| streadd | 很危險(xiǎn) | 確保分配的目的地參數(shù)大小是源參數(shù)大小的四倍。 |
| strecpy | 很危險(xiǎn) | 確保分配的目的地參數(shù)大小是源參數(shù)大小的四倍。 |
| strtrns | 危險(xiǎn) | 手工檢查來(lái)查看目的地大小是否至少與源字符串相等。 |
| realpath | 很危險(xiǎn)(或稍小,取決于實(shí)現(xiàn)) | 分配緩沖區(qū)大小為 MAXPATHLEN。同樣,手工檢查參數(shù)以確保輸入?yún)?shù)不超過(guò) MAXPATHLEN。 |
| syslog | 很危險(xiǎn)(或稍小,取決于實(shí)現(xiàn)) | 在將字符串輸入傳遞給該函數(shù)之前,將所有字符串輸入截成合理的大小。 |
| getopt | 很危險(xiǎn)(或稍小,取決于實(shí)現(xiàn)) | 在將字符串輸入傳遞給該函數(shù)之前,將所有字符串輸入截成合理的大小。 |
| getopt_long | 很危險(xiǎn)(或稍小,取決于實(shí)現(xiàn)) | 在將字符串輸入傳遞給該函數(shù)之前,將所有字符串輸入截成合理的大小。 |
| getpass | 很危險(xiǎn)(或稍小,取決于實(shí)現(xiàn)) | 在將字符串輸入傳遞給該函數(shù)之前,將所有字符串輸入截成合理的大小。 |
| getchar | 中等危險(xiǎn) | 如果在循環(huán)中使用該函數(shù),確保檢查緩沖區(qū)邊界。 |
| fgetc | 中等危險(xiǎn) | 如果在循環(huán)中使用該函數(shù),確保檢查緩沖區(qū)邊界。 |
| getc | 中等危險(xiǎn) | 如果在循環(huán)中使用該函數(shù),確保檢查緩沖區(qū)邊界。 |
| read | 中等危險(xiǎn) | 如果在循環(huán)中使用該函數(shù),確保檢查緩沖區(qū)邊界。 |
| bcopy | 低危險(xiǎn) | 確保緩沖區(qū)大小與它所說(shuō)的一樣大。 |
| fgets | 低危險(xiǎn) | 確保緩沖區(qū)大小與它所說(shuō)的一樣大。 |
| memcpy | 低危險(xiǎn) | 確保緩沖區(qū)大小與它所說(shuō)的一樣大。 |
| snprintf | 低危險(xiǎn) | 確保緩沖區(qū)大小與它所說(shuō)的一樣大。 |
| strccpy | 低危險(xiǎn) | 確保緩沖區(qū)大小與它所說(shuō)的一樣大。 |
| strcadd | 低危險(xiǎn) | 確保緩沖區(qū)大小與它所說(shuō)的一樣大。 |
| strncpy | 低危險(xiǎn) | 確保緩沖區(qū)大小與它所說(shuō)的一樣大。 |
| vsnprintf | 低危險(xiǎn) | 確保緩沖區(qū)大小與它所說(shuō)的一樣大。 |
來(lái)自為知筆記(Wiz)
轉(zhuǎn)載于:https://www.cnblogs.com/liuzhanshan/p/5277685.html
總結(jié)
- 上一篇: 软件项目管理(1)
- 下一篇: Oracle导出excel