您所在的位置: 首页>>网络安全>>应用安全>>数据库安全>>

如何防范网站数据库入侵

  • 摘要:许多黑客可以利用搜索引擎很容易地得到一个网站的数据库,从而得到网站的管理账号和密码,并可以控制到整个网站的管理权。
  • 标签:数据库  入侵  黑客

搜狐、163、雅虎等都是众网民经常光顾的大型门户网站,这些网站提供的搜索引擎服务最受大家的青睐。可是恰恰是这些搜索引擎为黑客大开方便之门,许多黑客可以利用搜索引擎很容易地得到一个网站的数据库,从而得到网站的管理账号和密码,并可以控制到整个网站的管理权。这样一来,一些保存在数据库里只有管理员才能看到的机密文件就被泄露出来。

其实通过搜索引擎入侵网站过程十分简单,了解了入侵的方法,也就可以知道如何解决问题。那么防范的具体方法到底是怎么样的呢?

首先从入侵者角度着手,分析一段代码:

〈%connstr=“DBQ=“+server.mappath(“data/data.mdb”)+”;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};”

set conn=server.createobject(“ADODB.CONNECTION”)

conn.open connstr %〉

以上是一段ASP的调用数据库的代码,其中“+server.mappath(“data/data.mdb”)+”起到设定数据库位置的作用。从中不难看出这个网站的数据库在dada目录中的data.mdb文件中。

很多大型网站的搜索引擎中,有一个强大的功能,就是可以搜索未在本搜索引擎注册过的网页。利用这个功能,让我们来搜索“server.mappath”这个字段。结果得到的结果是:

[无标题文档]

……=“+server.mappath(“../up/mucal/calp.mdb”)+”;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};”

set conn=……

-(网址:略)

这样,用户就会得到很多带有数据库位置信息的搜索结果。但结果中会存在一些水分,而且范围太大。如果用户只想得到某一个网站的代码该怎么办呢?其实这个也很简单,搜索引擎通常带有多关键词查询功能,只要在所要搜索的两个关键词中间输入一个“+”就可以了。比如用户要查找有关于计算机世界网站中关于网络安全的所有网页,只要用户在搜索引擎中键入“计算机世界+网络安全”即可。同样,用户可以用这个方法来解决上面的那个问题。如果用户要得到某一个程序的数据库,比如这个程序的名字是《小牛江湖》,那么用户在搜索引擎中搜索“小牛江湖+ server.mappath”就可以得到下面的结果:

[小牛江湖]

……=“+server.mappath(“../xajh/data/mycalf.mdb”)+;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};”

set conn=……

-(网址:www.mycalf.com/xajh/index.asp

此时,这个程序的数据库位置便一目了然:/xajh/data/mycalf.mdb。接下来用户把这个数据库下载下来,用相应的数据库软件打开,就可以得到其中的内容。利用这个漏洞还可以得到mssql server的口令,甚至可以进一步的去管理对方的整个服务器。

天下有矛就该有盾。这个被别人利用搜索引擎得到网站数据库的问题可以用许多方法化解,最有效的方法之一就是隐藏这段语句,利用调用其他文件的方法来实现调用数据库。

首先需要建立一个内容为〈% connstr=“DBQ=“+server.mappath(“data/data.mdb”)+”;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};”

set conn=server.createobject(“ADODB.CONNECTION”)

conn.open connstr %>的ASP文件。比如把这个文件命名为dbconn.asp。这样只要在需要调用数据库的ASP文件中加入!--#include file=“dbconn.asp”-->就可以实现数据库的调用。如此,便实现了调用语段的隐藏,解决了被他人利用搜索引擎得到网站数据库的问题。   

责任编辑 赵毅 zhaoyi#51cto.com TEL:(010)68476636-8001


Sun以10亿美元并购开源数据库厂商MySQL
Oracle数据库开发之PL/SQL基础应用
Oracle数据库开发基础教程
2006年数据库频道热点关注
数据库安全技术专题
 
 验证码: (点击刷新验证码)   匿名发表
  • Visual C++ 完全自学宝典

  • 作者:强锋科技,朱洪波
  • Visual C++ 6.0是微软公司为程序人员提供的Visual Studio 6.0工具套件中的重要组成部分。本书由浅入深地介绍使用Visual C++ 6.0..
Copyright©2005-2008 51CTO.COM 版权所有