gets()的缺陷,其不检查目标数组是否可以容纳输入,多出的字符将会简单地溢出到相邻内存区。很早之前,这个BUG被利用,引发了UNIX网络流行的“蠕虫”病毒。
[[it] 本帖最后由 now 于 2008-3-30 23:12 编辑 [/it]]
----------------解决方案--------------------------------------------------------
ls说的没错。《c 专家编程》里有一小段关于这个漏洞的说明,可以参考下
----------------解决方案--------------------------------------------------------
没人告诉你gets能自动判断输入是否越界吧?
多出的字符串放在了相邻的内存中,这就是常说的内存溢出
----------------解决方案--------------------------------------------------------
[[it] 本帖最后由 now 于 2008-3-30 23:12 编辑 [/it]]
----------------解决方案--------------------------------------------------------
ls说的没错。《c 专家编程》里有一小段关于这个漏洞的说明,可以参考下
----------------解决方案--------------------------------------------------------
没人告诉你gets能自动判断输入是否越界吧?
多出的字符串放在了相邻的内存中,这就是常说的内存溢出
----------------解决方案--------------------------------------------------------