|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。下载 自从弄ASP+ACCESS没少为制止数据库下载而伤过神,网上的奇淫技能更是不可胜数,本文就是同人人配合切磋各路先辈的留下的秘籍并指中个中的好坏,最初为人人供应一种最好的办理计划
1、开篇
自从弄ASP+ACCESS没少为制止数据库下载而伤过神,网上的奇淫技能更是不可胜数,本文就是同人人配合切磋各路先辈的留下的秘籍并指中个中的好坏,最初为人人供应一种最好的办理计划
2、分析
为了避免ACESS数据库下载,小的见过很多办法,次要有以下几种:
1、数据库加密
这个天然不必说了,他人假如晓得数据库路径,还是能下载,翻开数据库实在也很复杂,网上破解ACCESS数据库的暗码软件太多了,之前我也有所研讨,97版的ACCESS的暗码是从文件的开首第73(假如这个数字没记错的话)个字符入手下手一连的十多个,这个是暗码与已知的一串字符异和的了局,2000版的ACCESS变伶俐了一些它的加密后的暗码不是一连是距离的不外加密密钥仍是一样的,因为是对称加密以是破解ACCESS几乎轻而易举(呵呵,仿佛跑题了)
2、数据库文件名改名
这个用的对照多,次要是用到了HTML的锚点,将数据库的文件名中到场“#”,假如间接敲进数据库的路径试图下载的话,因为扫瞄器只剖析到了#后面一年夜串URL,#后被以为是锚点标志,数据路径被回护起来了。刚看到这类办法时,俺的确得信服最后发明这个办法的N人。惋惜没多久,在网上看到了另外一篇文章对此办法的破解,道理很复杂,字符“#”被URL剖析后的字符应当是“%35”,这就是我们在地点栏里常常看到%20样的器材,实际上是空格,因为举行了URL编码以是剖析成了%20(20是由于空格的ASC码值为20)
3、数据库扩大名改名
这个用的太广泛了,扩大名一样平常改成.ASP,由于扩大名为。ASP文件都要交给ASP。DLL文件注释实行,ASP。DLL只会注释在<%%>之间的代码(另有<scriptrunat=server></script>,别的的一概不论,一成不变地交给扫瞄器处置,以是间接把扩大名改成ASP后,数据不会被下载,可是会被扫瞄器间接翻开.如许他人将内容拷贝后仍旧能够复原成原始的MDB文件。
三办理
人人应当对照懂得动网论坛,他的数据库里有一个NotDown的表,这个表只要一个字段,而且这个字段的范例是OLE型,用于寄存二进制的数据,这个表有甚么感化呢?呵呵...
把动网的数据库扩大名改成ASP,然后在扫瞄器里输出对应路径的数据库地点,看到甚么了?一串毛病的ASP剧本毛病的信息,固然数据库也没举措DOWN上去了,为何会如许呢,谁人NotDown表事实寄存的是甚么呢??
人人好悦目看第二节中的第3种办法,细心揣摩一下应当不难懂白结论,恰是由于NotDown表是有相似如许的剧本以致ASP.DLL把它看成真实的ASP文件来实行,可是这恰好是动网数据库存心布置的语法毛病,以致ASP.DLL注释里堕落,因此把ASP堕落信息显现出来,从而回护了真实的数据.
四理论
NotDown表中倒底写了些甚么呢??呵呵,是否是有点急了.
我们晓得NotDown表因为是二进制字段,一切我们读写数据库的时分,也要改一改惯例,ADO中专门有读写二进制字段的办法它们分离是AppendChunk和GetChunk有了这两个办法我们就能够看看谁人内外面事实是啥玩意了
<%
------此处省略毗连数据200字,失掉数据毗连工具Conn
setrs=server.createobject("adodb.recordset"
sql="selectnotdownfromNotDown"
rs.opensql,0,1
data=rs(0).GetChunk(rs(0).ActualSize)读出一切的二进制数据
rs.close
setrs=nothing
----封闭数据库毗连
response.BinaryWrite(data)因为data是二进制,以是要挪用response打印二进制的办法将其输入
%>
过足瘾了吧,想晓得了局是甚么吗,赶忙归去调试看看啊
五改善
下面的办法固然是保住了数据库,可是有个毛病的提醒,老是以为有点不爽,我们来改点其余假如试图输出数据库的地点来下载数据库,将会主动跳转到搜狐网站,代码以下
<%
------此处省略毗连数据200字,失掉数据毗连工具Conn
setrs=server.createobject("adodb.recordset")
sql="selectnotdownfromNotDown"
str="<%response.redirect(""http://www.sohu.com"""&chr(37)&">"
因为字段是二进制数据,我们如果间接把Str字符串字进数据库的话会有一点成绩在VBS中每个字符占两个字节,以是我们要往失落高位的空字节
fori=1tolenb(str)
ifmidb(str,1,i)0then
data=data+ascb(midb(str,1,i))
endif
next
rs.opensql,0,3
data=rs(0).AppendChunk(data)写进二进制数据
rs.update
rs.close
setrs=nothing
%>
OK了,看看运转效果,乃至还能够到场一段JS剧本,弹出一个对话框,吓吓那些下载数据库的小猫们,还不敢快尝尝往。
国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了 |
|