
而很多的网站都不太重视这些,比如数据库文件名是data.mdb等而又有一部分人认为把数据库的扩展名改成.asp就万事大吉了,
其实不然!大家可以做个试验 ,在自己的机器上把mdb改成asa或者asp 然后用任何一种下载工具下载,下载之后再把文件名改成.mdb 文件照样可以用!道理很简单!iis只执行<% %>内的内容,而mdb文件单纯的修改扩展名只会让iis错误的以txt方式显示出来
你可以看见,如果在浏览器执行***.asp(注意:这个是mdb数据库)就会看见一大堆乱码,和你用记事本打开看见的一样!
防止数据库被下载的方法就有4种
1:在数据库新建一个表,表名为<%safe就可以了 ,这样iis在解析的时候会出现500错误,数据库也就下载不了了!
2:在你的数据库文件名后门加上# (不是扩展名,比如name#.mdb)这样iis就以为你是在请求该目录中默认的文件名,比如index.asp,如果iis找不到就会发出403禁止浏览目录的错误警告!
3:在iis中是把数据库所在的目录设为不可读,这样就可以防止被下载!请放心,这样做不会影响asp程序的正常使用!!
4:直接使用数据源 (ODBC)这样数据库就可以不用在web目录里面,从而彻底防止被下载,但是这样做你必须拥有服务器的管理员权限,哈哈,大部分虚拟主机用户是不可能用数据源 (ODBC)的!
把数据库文件名扩展名改为 ASP 或者 ASA或者把数据库放在WEB目录以外的目录。
这样即使对方知道数据库的名字和位置也下载不了。除非人家已经入侵到你的系统里面了。
假设你的空间物理路径为d:\web\abc\root,你的站点根目录放在abc目录下,名为wwwroot,数据库目录为abc目录下的databases文件夹,设置方法如下:
首先,我们打开conn.asp,找到DBPath = "/KS_Data/KesionCMS4.mdb" 'ACCESS数据库的文件名,请使用相对于网站根目录的的绝对路径
将它修改为DBPath = "d:/web/abc/root/databases/KS_Data/KesionCMS4.mdb" 'ACCESS数据库的文件名,请使用相对于网站根目录的的绝对路径
然后找到ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &Server.MapPath(DBPath)这一句,
将它改为ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &DBPath
如果需要采集,采用同样方法修改。
如果有以下文件,也需要修改
将/admin/KS.Database.asp文件中的“Server.MapPath(DBPath)”、“Server.MapPath(CollectDBPath)”、“Server.MapPath(strCurDir)”全部搜索出来并且分别替换为“DBPath”、“CollectDBPath”、“strCurDir”。这是后台"备份/压缩数据库"页面的数据库连接。
修改后保存文件,打开网站和后台试试看吧!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)