关于勤奋的名言和事例:高手来解释一下

来源:百度文库 编辑:高考问答 时间:2024/04/30 07:41:45
计算机的溢出问题,怎么定义的,为什么要益出啊?
常见的一些益出工具,它的作用是什么?谢谢

机科学和安全问题的分析家认为,计算机的最大隐患不是千年虫问题,而是称为“缓存溢出”的安全漏洞。千年虫只会使计算机无法正确识别用两位数表示的年份,而缓存溢出则不同,它为心怀恶意的黑客打开了攻击他人计算机的大门,使他们可以利用这个漏洞打入他想要攻击的计算机。

在缓存溢出的计算机中,攻击者可以用超出需要的字符填满一个域,通常是地址栏。在某些情况下,这些过量的字符能够作为“可执行”代码来运行,从而使得攻击者可以不受安全措施的约束来控制被攻击的计算机。

美国Oregon科学与技术研究生院(OGI)最近公布的一篇论文称:“过去10年中,缓存溢出一直是计算机的最大安全隐患。由于这种攻击使得任何人都能够完全控制某一台主机,因此这构成了对计算机安全的最大威胁。

安全问题分析家认为,解决缓存溢出问题的第一步是,人们必须更加小心地进行计算机的编程。程序员只要增加能够处理过长字符串的指令,就能够防止对他们的产品的攻击。安全分析家Alan Paller说:“造成问题的原因是程序员的粗心大意。你编写了一个程序,让他人输入信息,为他们提供了一定数量的字符空间,但是你不检查程序能不能接受更多的字符。像这样的程序员是不称职的,他就是问题的根源。他的错误将要我们花费很大的精力来加以解决。”

OGI的论文认为,小心编写代码是防止缓存溢出的第一步,但是,鉴于目前的编程语言特点和人们粗心大意的编程做法,这个问题的解决真是说起来容易做起来难。该论文的作者指出:“编写正确的代码虽然是个很好的想法,但是必须付出很大的代价,尤其是用容易出错的C语言来编写,情况更是如此。”

为了解决编写代码不认真的问题,程序员创建了一些错误调试工具,以便寻找缓存溢出的隐患。此外,该论文还提出了一些其他手段,用于防止代码在地址空间或已有的范围内运行,使得过多的字符不会移到它们能够运行的位置中去。该论文建议要综合运用各种保护措施来解决缓存溢出的弱点。

缓存溢出的问题最终还是要靠软件供应商来解决,客户应该让它们承担这个责任。aller说:“问题的责任应该由Microsoft的Bill Gates和Sun的Scott McNealy来负。人们不应该对供应商如此宽宏大量,这个问题并没有完。”

Sun也认为,缓存溢出问题很常见,并且是个可以防止的问题。不过它辩解说,公司正在努力防止编程错误,一旦出现,将立即加以解决。Sun的Tom Goguen说:“我们正在开发相应的工具,以便对软件进行自动检查,防止进一步出现类似的问题。”Microsoft也于最近对Windows操作系统中涉及缓存溢出的代码进行了修改,不过该公司没有就缓存溢出问题直接展开评论。

美国加利福尼亚大学的计算机学副教授Matt Bishop认为,造成缓存溢出问题的部分原因是程序员不重视解决人们早就认识到的一个危险。他说:“我们没有吸取以往的教训。早在六七十年代,我们就已经知道如何解决缓存溢出的办法。但是它的解决方案通常是使用硬件或者是在程序本身中来实现的。有人认为这使程序的运行变得非常慢,因此许多程序推出时根本不带有缓存检查功能。现在我们不得不为此付出代价。”