安全函数_概念

c标准库的一些函数在使用过程中,面临数组内存越界等安全问题,这些原生的有隐患函数称为不安全函数
为了避免不安全函数的隐患给代码带来各种漏洞,各大厂商基于标准库的函数,进行包装,加上校验和规避的措施,推出安全函数版本。
其中比较有名的有windows的安全函数,华为的安全函数。

下面就windows的安全函数说一说。

vs安全函数

在使用vs(Visual Studio) 进行程序开发的使用,如果使用了strcpy等函数,vs会产生告警,提示用_s后缀的函数进行替换。_s后缀的这类函数就是安全函数。各大厂商也都默认使用_s后缀来标注安全函数。

https://docs.microsoft.com/en-us/cpp/?view=msvc-160
查看安全函数的特性和函数介绍,还是要到官网去看。
安全函数_概念
安全函数_概念

https://docs.microsoft.com/en-us/cpp/c-runtime-library/security-features-in-the-crt?view=msvc-160
了解到vs的安全函数是对c标准库的包装或者重写,直接看官网关于C runtime library(c库)的手册。
安全函数_概念
手册中的CRT(C Runtime)安全特性即使关于安全函数的介绍。
Security Features in the CRT讲的是为什么要有安全函数、如何消除告警使用原生函数、安全函数做了哪些安全操作。

安全函数_概念
Security-Enhanced Versions of CRT Functions则是表列了vs的安全函数和原函数

Parameter Validation介绍了参数告警相关的相关内容。
Secure Template Overloads介绍了安全函数在C++中的重载。

vs安全函数的查阅

安全函数_概念
直接在文档页面检索就可以看到函数的相关简介。

后记:
安全函数最正统主流的版本还得是windows的吧。
windows的安全函数好像没有开源,没有找到源代码。
安全特性的代码实现各大厂商应该都不一样,具体情况,工作时候自然可以看到内部实现了,学习的成本估计也不高。
用到的时候再了解即可。

看东西呀,还得从源头看,有助于建立健康完善的知识体系~

上一篇:自助生成https的crt和key证书


下一篇:Centos 7安装并配置OpenVPN