gpt4 book ai didi

c - 这个 C 用户输入代码容易受到攻击吗?

转载 作者:太空宇宙 更新时间:2023-11-04 08:05:18 26 4
gpt4 key购买 nike

我有这段代码可以读取用户的输入:

unsigned int readInput(char * buffer, unsigned int len){
size_t stringlen = 0;
char c;
while((c = getchar()) != '\n' && c != EOF){
if(stringlen < (len-1)){
buffer[stringlen] = c;
stringlen++;
}
}
buffer[stringlen+1] = '\x00';
return stringlen;
}

char * buff 的大小已经设置为 len 并且已被 memset 包含“0”。此代码是否容易受到任何漏洞攻击?

最佳答案

根据平台的不同,unsigned int 可能太小而无法容纳数字 13194139533312。在 C 中,您应该始终使用 size_t 作为缓冲区大小,不这样做可能是一个漏洞,是的。

此外,getchar() 当然不会返回 char,所以这也有问题。

我会说"is",该代码是易受攻击的。

关于c - 这个 C 用户输入代码容易受到攻击吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43251100/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com