C++安全编码概念及定义

本文介绍了C++安全编码的目的,强调建立攻击者思维,时刻假设所有外部数据不可信。安全编码的基本思想包括严格校验外部数据,减少攻击面,并采用防御性策略以弥补编码疏忽。外部数据来源如文件、网络、用户输入等都需要谨慎处理。总结中指出,安全编码能够增强程序的健壮性,并预告了后续将深入探讨安全编码规则。
摘要由CSDN通过智能技术生成

C++安全编码

目的

建立编程人员的攻击者思维,养成安全编码的习惯,编写出安全可靠的代码。

攻击者思维

编程中应该时刻保持如下假设:

  1. 程序处理的所有外部数据都是不可信的攻击数据。
  2. 攻击者时刻试图监听、篡改、破坏程序运行环境、外部数据。

安全编码基本思想

基于以上假设,得出安全编码基本思想:

  1. 程序在处理外部数据时必须经过严格的合法性校验:处理外部数据时,不能做出任何外部数据符合预期的假设,外部数据必须严格判断后才能使用。
  2. 尽量减少代码的攻击面:代码实现应该尽量简单,避免与外部环境做多余的数据交互,过多的攻击面增加了被攻击的概率,尽量避免将程序内部的数据处理过程暴露到外部环境。
  3. 通过防御性的编码策略来弥补潜在的编码人员的疏忽:由于外部环境的不确定,编码人员的经验、习惯差异,代码的执行过程很难达到完全符合预期。编码过程中采取防御性的策略,尽量缓解由于编码人员疏忽导致的缺陷。措施包括:
    • 变量声明应该赋予初值
    • 谨慎使用全局变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值