C语言安全编程

c语言很灵活,功能强大,灵活的好处是容易使用,但是不好的地方就是需要注意很多规则来保证代码的鲁棒性。安全编程需要注意的点右:
1.避免使用全局变量和静态局部变量,中间过程的值被修改以后,会改变程辉潜在运行的逻辑和功能函数的输出。
2.C语言右很多外部输入函数,可以接受外部输入指令。比如Scanf等等。由于C语言的规则,很多特殊的支付会被当做命令符来处理,所以外部输入就容易被利用。所以必须检查外部输入的长度,大小合法性等等
3.所有的变量都必须要初始化初值
4.尽量使用简单的函数。避免使用功能复杂的函数例如Realloc
5.在进行内存操作的时候要时刻注意:内存空间的开辟与释放,开辟是否成功,开辟空间的时候,如果变量是功能函数外部写入的话,要做安全性检查
6.不要改变操作系统的环境
7.合理使用断言
外部命令包括:
1.环境变量,
2,用户输入
3,文件输入
4,全局变量
5,用户态数据
6,注册变信息
7,网络信息
8,函数输入
9,进程间的通讯
10,命令行

可重入的功能函数:
strtok_s/malloc/read/fork/strcpy/socket
不可重入的函数比较多:
rand srand/getenv getenv_s/strok strerr/asctime ctime localtime gmtime
setlocale /atomic-init /tmpnam/mbrtoc16/c16tomb mbrtoc32 c32rtomb
gethostbyadd/ gethostbyname/inet-ntoa/printf he cout

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值