WEB开发网
开发学院软件开发VC 防止Visual C++应用程序缓冲区溢出 阅读

防止Visual C++应用程序缓冲区溢出

 2008-11-13 19:32:40 来源:WEB开发网   
核心提示:目前最常见的安全问题是缓冲区溢出,这个特别的安全问题引发的病毒感染可能比其它原因引发的病毒感染数量的总和还要多,防止Visual C++应用程序缓冲区溢出,市场上几乎每个应用程序和操作系统都存在黑客可能利用的缓冲区溢出漏洞, 这个问题对于微软Windows来说是如此严重,赋予黑客访问系统的权利,提供高级的用户帮助很多开

目前最常见的安全问题是缓冲区溢出。这个特别的安全问题引发的病毒感染可能比其它原因引发的病毒感染数量的总和还要多。市场上几乎每个应用程序和操作系统都存在黑客可能利用的缓冲区溢出漏洞。

这个问题对于微软Windows来说是如此严重,以至于微软在产品的新版本(例如Windows XP Service Pack 2)中采用了一种完全不同的解决方法。本文的目的是帮助你更清晰地认识缓冲区溢出,并提供了几种用于减少(或者是消除)Visual C++应用程序缓冲区溢出问题的技术。

导航:

什么是缓冲区溢出

缓冲区溢出证明了一个观点:除非你看着用户与你的应用程序交互操作,否则你根本就不知道用户会向应用程序输入什么样的数据。

验证数据的范围

编程语言提供的大多数数据范围反映的都是下层硬件的实际情况,而不是现实世界的需要。例如,当你在代码中把某个值定义为Int32的时候,就意味着用户输入的值应该在-2,147,483,648到2,147,483,647之间。

验证数据的长度

有些数据类型不太容易进行快速检查。例如,字符串可以包含任意数量的字符,其数量最多只受到.NET框架组件和机器的限制。当然,很少人真的需要这么长的字符串。通常开发者要求字符串有一个最小和最大的长度范围。

排除非法的字符

黑客经常在输入信息中包含一些额外的非法字符,以了解会发生什么情况。例如,黑客通常会通过添加特定的字符建立脚本。在很多情况下,系统在没有提供任何警告的情况下就会执行脚本,赋予黑客访问系统的权利。

提供高级的用户帮助

很多开发者都不能把帮助与良好的安全性联系到一起,但是良好的帮助的确可以减少用户犯错误来提高安全性。

什么是缓冲区溢出

1 2 3 4 5 6  下一页

Tags:防止 Visual 应用程序

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接