一些不安全的常用的C函式
1 gets()
gets()由於不能進行拷貝了的buffer的size指定、所以有BufferOverflow的問題。使用代替函式進行Buffer的Size指定,
或者使用fgets()。
2 scanf()
不使用scanf()、把scanf_s()、sscanf()作為代替函式來使用。
3 strcpy()
strcpy()不檢查copy先的Buffer的Size,所以有Buffer Overflow問題。請務必使用按照strncpy_s()、strcpy_s()、
strncpy()等不同環境而準備的安全度很高的函式。
另外、即使是使用安全度很高的函式,由於用法方面的原因,也可能發生Buffer Overflow,
請注意如下幾點。不要在strcpy_s()、strncpy_s()進行Buffer Size的誤指定。
4 strcat()
strcat()不會進行檢查Buffer的長度檢查,所以有BufferOverflow問題。請使用按照strncat_s()?、strcat_s()、strncat()等環境
而準備的安全度很高的函式。
另外、即使是使用安全度很高的函式,由於用法的原因也會產生BufferOverflow。
所以請注意如下幾點。 strcat_s()、strncat_s()不進行Buffer長度的誤指定。
5 sprintf()
使用按照sprintf_s()、snprintf()等的環境分別準備的安全度很高的函式。
另外、非常古老的UNIX/Linux系統中、特別是Linux的libc4的古老版本中的snprintf()等的BufferOverflow實際上是不能避免的,
所以請注意。