此代码中有哪些漏洞请有人解释我
#include <stdio.h>
#include <string.h>
int main(int arc, char* argv[])
{
char buff[50];
strcpy(buffer, argv[1]);
printf("You are string: %s", buff);
return 0;
}
答案 0 :(得分:1)
argv[1]
可能不存在,或者可能超过50个字符=&gt;问题。
解决方案:检查argc >=2
和strlen(argv[1])<50
否则,您的程序有未定义的行为,
意味着它可以做一些奇怪和意外的事情
此外,恶意人类可能会注入自己的代码