- 博客(5)
- 资源 (6)
- 收藏
- 关注
原创 C++安全编码:函数
函数数组作为函数参数时,必须同时将其长度作为函数的参数由于C语言风格的数组,默认没有结束符,当读取数组时需要自己根据数组长度进行判断。(这个也是C/C++)比其他语言运行效率高的一点原因。严禁对公共接口API函数的参数进行ASSERT操作对于设计成API的函数,必须对参数进行合法性判断,严禁在API实现过程中产生CRASH。ASSERT,第一会产生crash,release版本又无效;所...
2019-03-11 21:20:15 1360
原创 C++安全编码:断言
断言简介在程序设计中,断言(assertion)是一种放在程序中的一阶逻辑(如一个结果为真或是假的逻辑判断式),目的是为了标示与验证程序开发者预期的结果-当程序运行到断言的位置时,对应的断言应该为真。若断言不为真时,程序会中止运行,并给出错误消息。C++断言包含运行期检查断言、静态断言运行期检查的断言在程序运行时,可以用断言检查程序开发时的假设,确认这些假设是否成立。存在先天的缺点:...
2019-03-08 18:22:53 1719
原创 C++编译错误:call to deleted constructor of std::istream
call to deleted constructor of ‘std::istream’ (aka ‘basic_istream’)示例代码#include<iostream>using namespace std;int main(){ std::istream is = cin; //出错代码 return 0;}编译代码详细错误如下(g++ m...
2019-03-07 09:51:37 18568 2
原创 C++安全编码:变量
变量指针变量、表示资源描述符的变量、BOOL变量声明必须赋予初值为了贯彻零开销原则(C++之父Bjarne在设计C++语言时所遵循的原则之一,“无须为未使用的东西付出代价”),编译器一般不会对一般变量进行初始化,也包含指针,所以负责初始化指针变量的只有程序员自己。使用未初始化的指针时,非常危险,因为指针指向内存空间,所以程序员容易通过未初始化的指针改写该指针随机指向的存储区域,而由此产生的后...
2019-03-05 18:43:37 3495 2
原创 C++安全编码概念及定义
C++安全编码目的建立编程人员的攻击者思维,养成安全编码的习惯,编写出安全可靠的代码。攻击者思维编程中应该时刻保持如下假设:程序处理的所有外部数据都是不可信的攻击数据。攻击者时刻试图监听、篡改、破坏程序运行环境、外部数据。安全编码基本思想基于以上假设,得出安全编码基本思想:程序在处理外部数据时必须经过严格的合法性校验:处理外部数据时,不能做出任何外部数据符合预期的假设,外部...
2019-03-02 10:56:27 2598
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人