

#include <stdio.h>
/*
void PrintStr(char s[][50], int n)
{
int i = 0;
for ( i = 0; i < n; i ++ )
{
puts(s[i]);
}
}
*/
int main()
{
/*
char arr[][50] = {
"hello",
"world",
"i like c"
};
PrintStr(arr, 3);
*/
int i = 0;
char arr[12] = { 0 };
// DoS
// WAF
scanf("%d", &i);
getchar();
gets(arr);
if ( i == 0 )
{
printf("%s \r\n", arr);
}
else
{
printf("error \r\n");
}
return 0;
}

本文深入探讨了C语言中使用scanf和gets函数进行输入输出的风险,特别是在未做适当边界检查的情况下可能导致的安全隐患,如缓冲区溢出。通过具体代码示例,分析了不当输入处理可能引发的问题,并隐含地提醒读者注意编程实践中的安全规范。
1714

被折叠的 条评论
为什么被折叠?



