c语言代码审计和安全漏洞检查主要容易出现在接口和输入输出位置上。
c language code review note
1 参数和指令检查
command: argc argv
注意此处为用户外部输入接口,argc和argv两个参数必须严格判断,数据类型,指令
格式长度均作安全校验校测。常见的最容易出漏洞的argv[1]参数指针引用。缓冲区溢出,
整数溢出,越界等漏洞。
environmental var: getenv
环境变量获取和数据检测。此处出现漏洞的原因在于该函数在获取环境变量数值时候。
并不作任何校验或者判断,直到字符串结尾。
至少先得加个
string strenv ="";
strenv = getenv( "tmp_dir");
if( ( NULL == strenv ) || ( 0 == strlen(strenv ) ) )
{
//error
}
<