开发者网络 动网主机 支持论坛 邮局 帮助
当前位置:网络学院ASP技术系统相关 → 如何使Web更安全 - 4
如何使Web更安全 - 4
日期:2001年8月30日 作者:Timer(转) 人气:     [ ]
四、试图控制Web站点主机

一些攻击利用web服务器上运行的软件的漏洞来让服务器执行攻击者的代码。一类臭名昭著的攻击方法就是向缓存写入大量的数据从而使缓存器崩溃。下面所摘录的一段C++代码就很容易受到这样的攻击,因为它没有边界检查。

void ByYourCommand( char* pszData )
{ char szBuffer[ 255];
strcpy( szBuffer, pszData ); ...}

如果执行strcpy()过程使堆栈溢出,将会产生什么结果呢?图4向你展示了系统堆栈溢出后的情况。如果攻击者在缓存中写入了太多的数据,它将覆盖函数调用记录。这是一个数据结构,它包含了保存函数入口代码的寄存器,还有函数的返回地址。如果攻击者的代码覆盖了函数的返回地址,攻击者就可以在你的计算机上执行任何代码。


图4 通过使缓存溢出,攻击者把攻击代码加载到内存,
代替函数的返回地址,从而执行攻击代码

攻击者是如何把他的攻击代码移植到你的电脑上的呢?他使用的方法就是把代码写进数据缓存,传递这个例子函数的字符串很容易感染上“特洛伊木马”这样的黑客程序。有许多文章已经介绍过这类的攻击方式。

黑客知道易攻击的函数(例如上面所举的函数例子)通常易被回应用户输入的代码所调用。攻击者发送一个不可能的长字符串给服务器。如果缓存溢出,处理他的请求的线程将崩溃。攻击者得到HTTP超时的消息提示就表明请求线程已被破坏。

如何阻止你Web站点的应用程序被利用呢?首先,给系统软件添加最新的安全补丁。然后,检查使用允许直接访问内存的语言(例如:C、C++和Delphi)编写的程序代码,看是否有安全漏洞。

检查代码可以给你无尽的信心,因为你可以发现一个应用程序并不是很容易就受到缓存溢出这样的攻击的。如果你要完全避免这样的问题,只能不使用直接访问内存的语言来编写代码。你可以使用一些脚本语言(例如:JavaScript、Perl)或使用解释性的语言(例如Java)。如果使用安全的语言来编写代码,Web站点的操作员就可以被解放出来,不用天天担心缓存溢出这样的安全攻击。

另外,你也不要盲目地相信各种安全技术,厂商虽然为了推销自己的产品而做出了很好的安全质量承诺,但是你要知道没有任何技术能够保证你的Web不遭受攻击。所以你需要一定的时间和精力去研究和发现Web的缺点,然后找出解决问题的方法。

Web的安全性问题非常复杂,范围很广,在本文中,我们只是从外部的攻击角度出发,讨论了如何避免Web应用程序和Web数据遭到破坏和窃取,来防止非法用户对Web应用程序的越权访问,提高Web站点的安全性。


(出处:因特耐特)

相关文章:
 
·为提高竞争能力 微软将增强SQL 2005安全性能
·SQL Server安全规划全攻略
·Oracle数据库的安全策略
·自動化檢查 IIS 5.0 的安全漏洞
·加密處理使密碼更安全[转]
·在ASP.NET中创建安全的web站点
·加密處理使密碼更安全[CFS編碼加密]
·ASP.NET虚拟主机的重大安全隐患(六)
·ASP.NET虚拟主机的重大安全隐患(五)
·ASP.NET虚拟主机的重大安全隐患(四)
相关软件:
 
·赏金猎手论坛安全版
·厦门人家网摘天下生成HTML加强安全版
·网尽图片管理系统—摄影师专用第三版 安全补丁
·安全天空论坛Safety Sky Bbs v1.0 Build 0622 简化版
·全球旅游网安全系统 v3.0 完整版
说明:本站部分内容收集于网络,如有侵犯您的权益请来信告知,我们会第一时间进行处理,谢谢
 → 特别推荐
 → 热点TOP10

关于本站 | 诚聘英才 | 业务合作 | 联系我们 | 广告合作 | 收藏本站

海口动网先锋网络科技有限公司版权所有
Copyright ? 2000 - 2003 AspSky.Net
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077