我知道strcpy
,strcat
和strcmp
的大厅系列存在缓冲区溢出漏洞,以减轻某人可以使用strcpy
漏洞的strlcpy
漏洞那么strcat
和strcmp
怎么样,那些函数的安全版本还是有人必须手动检查变量?
答案 0 :(得分:3)
我推荐str-n-func系列:
使用strncpy而不是strcpy,strncat而不是strcat,strncmp而不是strcmp,依此类推。
附加n用于附加(第三)参数,即复制/连接/比较的最大字符数。
在这里阅读它们(附例子):
http://www.cplusplus.com/reference/cstring/strncmp/
http://www.cplusplus.com/reference/cstring/strncat/
<强>说明强>:
问题主要在于读取一些最终缓冲区的输入。你不能使用scanf或gets,你可以使用fgets。 例如:不使用gets从标准输入中读取字符串,而是使用fgets,如下所示:
fgets(str,sizeof(str),stdin);