设为首页 加入收藏

TOP

一些不安全的常用的C函数
2014-11-24 00:35:33 来源: 作者: 【 】 浏览:4
Tags:一些 安全 常用 函数

  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实际上是不能避免的,所以请注意。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux下/dev/mem和/dev/kmem的区别 下一篇交叉编译directfb在arm Linux平台..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: