设为首页
收藏本站
最新电影
> 子栏目 Asp | Jsp | XML | XSL | Div+Css | 自定义函数 | 数据库 | 脚本特效
您现在的位置: 首页=>后台技术=>数据库 订阅本栏目  
数据库防下载
时间: 2007-09-27 17:50:47 阅读次数:15425

第 1 页 数据库防下载[1]
第 2 页 数据库防下载[2]
第 3 页 数据库防下载[3]
第 4 页 数据库防下载[4]
第 5 页 数据库防下载[5]
第 6 页 数据库防下载[6]
第 7 页 数据库防下载[7]
第 8 页 数据库防下载[8]

 引子
   
昨天和animator试验了一下,把data.mdb文件改名为data.asp文件后放在wwwroot目录里然后在IE中输入data.asp路径后,发现IE显示一片空白,右键->察看源文件,跳出记事本,将内容另存为.mdb文件,用ACCESS打开,发现需要密码,也就是说至少文件头被破坏
   
然后用Flashget试验下载data.asp文件,并另存为data.mdb文件,发现用ACCESS打开完好无损!!!看来,好一些编程人员在开发的时候都认为,改了mdb后缀为asp就能防下载的概念,是错的!后台数据库被下载对于一个asp+access的网站来说无疑是一场惨绝人寰的灾难飞飞,Asp技术乐园今天找了各方的文章,归纳一下有以下9种办法防止数据库被下载(欢迎补充) 
    1
、发挥你的想象力 修改数据库文件名

   
不用说,这是最最偷懒的方法,但是若攻击者通过第三方途径获得了数据库的路径),就玩完了比如说攻击者本来只能拿到list权,结果意外看到了数据库路径,就可以冠冕堂皇地把数据库下载回去研究了另外,数据文件通常大小都比较大,起再隐蔽的文件名都瞒不了人故保密性为最低飞飞Asp技术~乐园









    AcOol PS:这个不用说,会用IE的都能下载到



    2、数据库名后缀改为ASAASP
   
此法须配合一些要进行一些设置,否则就会出现本文开头的那种情况  
   
1)二进制字段添加(此招我还没有炼成-_-+)飞飞@Asp技术乐园
  
   
2)在这个文件中加入<%%>IIS就会按ASP语法来解析,然后就会报告500错误,自然不能下载了可是如果只是简单的在数据库的文本或者备注字段加入<%是没用的,因为ACCESS会对其中的内容进行处理,在数据库里他会以< %的形式存在,无效!正确的方法是将<%存入OLE对象字段里,这样我们的目的就能达到了
 
   
操作方法:

   
首先,用notepad新建一个内容为 <% 的文本文件,随便起个名字存档
   
接着,用Access打开您的数据库文件,新建一个表,随便起个名字,在表中添加一个OLE对象的字段,然后添加一个记录,插入之前建立的文本文件,如果操作正确的话,应该可以看到一个新的名为“数据包"的记录即可
   
这样从URL上直接请求这个数据库将会提示"缺少关闭脚本分隔符",从而拒绝下载,因为这个方式比较麻烦我在网上找了一段小代码来完成OLE对象的插入工作,只要将数据库名设置好,然后放在和数据库内一目录运行一下就可以了







<%
db="d.mdb" '
这里改成您的数据库地址
set conn=server.createobject("Adodb.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(db)
conn.open connstr
conn.execute("create table notdownload(notdown oleobject)")
'
提示表及字段创建成功
response.write "
表、字段创建成功!"
set rs=server.createobject("adodb.recordset")
sql="select * from notdownload"
rs.open sql,conn,1,3
rs.addnew
rs("notdown").appendchunk(chrB(asc("<")) & chrB(asc("%")))
rs.update
rs.close
'
提示内容添加成功
response.write "
内容添加完成!"
set rs=nothing
conn.close
set conn=nothing
%>



    这段代码运行完之后将会在数据库内生成一个nodownload表,表内字段是notdown如果数据库内已有同名的数据表存在请将代码内的nodownload改成自己想要的数据表名即可








    AcOol PS:还是有朋友说写的不够详细,我都没话说了,我给你写详细点:








1、打开access数据库 
2
、使用设计创建表,添加字段notdown,类型使用“OLE对象” 
3
、保存为nodownload,不创建主键 
4
、打开记事本,编辑文件nodownload.txt,内容为“<% 
5
、打开nodownload表,点击右键-->插入对象,选择从文件插入,定位到nodownload.txt,确认
    
以上都需要在数据库创建一个表,大家可以把这个表留着不管,也可以直接删除,同样可以起到反下载的功能,即:执行后再删除关于这一点,大家可以试试



    这个方法处理过的MDB无法下载,但是据说在数据库中插入%>与最小木马,备份数据库为asp文件时,如果插入位置靠前,还是可以作为webshell服务器端利用的,不过这个我没测试过






[上一页] [下一页]
站内搜索    

下一篇当代码不能正确解释时 的解决办法

上一篇数据类型详解 MSSQL

本栏目最新 栏目最新列表
access由于您和其他用户试图同时改变同一数
Microsoft SQL Server 2005 Service Pack 3
MySQL时间戳转换的方法
清除,删除表中数据的方法
mysql常用时间函数用法解释
网站优化策划 栏目最新列表
增加网站外链的快速方法
网站上线前必做的30个检查
新的友情链接参考标准(没有google的PR情况
优化Google的AdSense广告的五个工具
王通讲SEO八大基础
站点最新 站点最新列表
微博推广的一些技巧
xhEditor v1.1.7 发布,
收集的一些轻量级非常实
50个新鲜兼容最新版本的
javascript中cookie的设
Excel中出现#VALUE!、#D
jquery插件:飞飞表情插件
十个使用HTML5开发的精彩
支持HTML5的浏览器有哪些
飞妮莫属:漫画:如何写出
历史最热10条信息  
MIME介绍 及 [1] [2] [3]
巧用Google和迅雷来下载
Transact SQL 常 [1] [2]
VIA Rhine II Fast Ethe
电脑常用端 [1] [2] [3]
Do you get a kick out
十道羊皮卷 欣赏+mp3版+
每日一句:A friend and
每日一句:Theres no tu
经典__悟透JavaScript
 width= 
伟哥博客 西安房产 123最新电影 三四六四