【发布时间】:2017-03-18 05:03:56
【问题描述】:
scanf_s("%s", a, 10);
此代码将保护我们的程序免受缓冲区溢出攻击。
但是没有 scanf_s,我们可以这样写:
scanf("%9s", a);
我认为这段代码也会阻止缓冲区溢出。这是真的吗?
那么这两种方式的基本区别是什么?
如果scanf的宽度规范是阻止缓冲区溢出,为什么我们称原始scanf为“不安全”?
【问题讨论】:
标签: c scanf buffer-overflow exploit tr24731