【发布时间】:2014-05-29 11:37:37
【问题描述】:
这几天看了缓冲区溢出攻击,其实我也不能说我了解大局,心里有些疑惑。
所以为了打消我的疑虑,问题出现了,如果我的程序是用 C 语言编写的,并且所有用于获取输入或复制/合并缓冲区、检查边界的代码,是否会发生缓冲区溢出?或者直接说,输入(无论来自哪里)是攻击者可以用来导致缓冲区溢出的唯一方法吗?
例如,考虑以下代码:
int main(){
int size = 15;
char buf[size];
fgets(buf, size , stdin);
printf("%s",buf);}
容易受到缓冲区溢出的影响吗? 谢谢!:)
【问题讨论】:
-
不会溢出(如果指定大小还不错的话) fgets 不会只在指定范围的区域内执行写入。
-
有一个错误.. 应该检查 fgets 的返回值
标签: c security buffer stack-overflow fgets