ASP+Access网站安全解决方案汇总Word格式.doc

上传人:b****2 文档编号:13923424 上传时间:2022-10-15 格式:DOC 页数:5 大小:83.50KB
下载 相关 举报
ASP+Access网站安全解决方案汇总Word格式.doc_第1页
第1页 / 共5页
ASP+Access网站安全解决方案汇总Word格式.doc_第2页
第2页 / 共5页
ASP+Access网站安全解决方案汇总Word格式.doc_第3页
第3页 / 共5页
ASP+Access网站安全解决方案汇总Word格式.doc_第4页
第4页 / 共5页
ASP+Access网站安全解决方案汇总Word格式.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

ASP+Access网站安全解决方案汇总Word格式.doc

《ASP+Access网站安全解决方案汇总Word格式.doc》由会员分享,可在线阅读,更多相关《ASP+Access网站安全解决方案汇总Word格式.doc(5页珍藏版)》请在冰豆网上搜索。

ASP+Access网站安全解决方案汇总Word格式.doc

对于这种攻击方法,最好的防范措施就是把服务器端的验证改为Session。

3)%5C暴库

解决方案一:

并不是所有的网站都存在%5C暴库的问题,对于这个问题,我们可以加入ONERRORRESUMENEXT语句,让程序出错时仍继续向下执行,这样,数据库会相对安全。

比如原来的conn.asp的文件内容如下:

Response.buffer=true

Constconndata=mydata/^%$!

%25#%23&

%78@data(+.asp

'

设置数据库路径

Constbackdata="

mydata/#数据库备份#kycpanswpuzg1ok.asp"

设置数据库备份路径

mydata="

Provider=Microsoft.Jet.OLEDB.4.0;

DataSource="

&

Server.MapPath(conndata)

Setconn=Server.CreateObject("

ADODB.Connection"

conn.Openmydata

为了防止暴库,我们改为如下的形式:

OnErrorResumeNext

经过这样的设置后,就可以有效防止这种方法的攻击。

我们再假设对方通过另外的途径获得了我们的数据库,想下载它,那我们怎么防止对方下载呢?

有些朋友可能会认为,把数据库改成一个复杂的名字,如^%$!

%78@data(+.asp就可以防下载了。

其实,这样跟本就做不到防下载的目的,假如你的网站网址:

如果再作点调整,将数据库加入防下载表,那么迅雷此时就无能为力了。

我们首先建立一个表NotDown,设制类型为“备注”,然后在其中加入<

%loop%>

后,再将其类型设制为“OLE对象”,如图1和图2所示。

此时若在浏览器中下载数据库,将会出现如下所示的错误:

MicrosoftVBScript编译器错误错误'

800a03f6'

缺少'

End'

/iisHelp/common/500-100.asp,行242

800a040e'

loop'

语句缺少'

do'

/data/^%$!

%78@data(+.asp,行227

Loop

同样,在迅雷和其它软件中也无法下载,这就是解决方案一。

解决方案二:

将数据库的地址设在非网站目录下,假如你网站的路径为“C:

\Inetpub\wwwroot”,那么我们改数据库放于d:

\data\^%$!

%78@data(+.asp,conn.asp下,修改后的代码如下:

Constconndata="

d:

%78@data(+.asp"

\data\#数据库备份#kycpanswpuzg1ok.asp"

conndata

这样相对于前面的方法而言,更为安全,因为数据库已不能通过HTTP下载了。

4)SQL注入

 

现在SQL注入很厉害,一个大型网站,由于文件众多,出现SQL注入漏洞也是情有可原的。

现在多数人想到的办法是过滤掉危险的字符,如“‘”、“()”、“<

>

”以及Select、Update等字符,但是由于代码太多,很有可能忽略掉其中某些未经处理的外部数据。

对此,我们可以换个角度来考虑。

我们可以想想,不管是SQL注入还是%5C暴库,其目的都是为了获取网站后台用户名和管理员密码。

假如我们的密码是MD5加密的,那么对方将尝试进行暴力破解。

如果把MD5加密算法作点修改,加密后,其密码散列将发生变化,使暴力破解失效。

如果再用我们修改后的MD5加密算法对密匙进行二次MD5加密,安全性必将大大提高。

下面我们就一起来修改MD5加密算法,其方法很简单。

一份原MD5加密49至53行(16位加密)的代码如下:

RShift=(lValueAnd&

H7FFFFFFE)\m_l2Power(iShiftBits)

If(lValueAnd&

H80000000)Then

RShift=(RShiftOr(&

H40000000\m_l2Power(iShiftBits-1)))

EndIf

注意RShift=(lValueAnd&

H7FFFFFFE)这部分,我们只要将H7FFFFFFE稍微作点修改,暴力破解就失效了,比如我们修改为H7FB9DFAE。

在作修改前,我们用原MD5算法加密“a”得到散列“c0f1b6a831c399e2”,网站上可以轻松破解,如图3所示。

修改后,我们再次对“a”加密,得到散列“8016a044f35128b8”,现在我们再次

由此我们可以看出,暴力破解“a”已经失效。

这样操作后,一个字母a都破解不出来了,要是我们对a进行二次、三次MD5加密,想想结果会是什么?

破解的人别想得到结果!

不过前提是对方不知道你修改的MD5算法,否则根据你修改的算法再编写工具,暴力破解是完全可行的。

所以,你要保证你的MD5.asp安全,千万不要在程序上出现一个像新云网站管理系统downfile.asp中的下载任意文件的漏洞,不然,就别想着安全了。

对于上面的方法,在不过滤任何字符的情况下也可以算是安全的,让旁注者去破解吧。

如果真要做得完全不过滤,还要注意一个地方,就是登录页login.asp。

我们可以把用户名和密码都改为MD5的加密密码,然后把加密后的MD5和数据库中的MD5作比较。

这样,绝对不可能直接利用’or’=’or’进行后台猜解的。

比如我们原来的登录验证代码如下:

sql=”selectuser,pwdfromadminwhereuname=’”&

request(“user”)&

”’andpwd=’”&

request(“pwd”)&

”’”

conn.execute(sql)

ifnotrs.eofandnotrs.bofthen

response.redirect“manage.asp”

else

response.write“登陆失败”

endif

很明显,上面的代码存在注入。

在不过滤的情况下,我们可以做如下的修改。

md5(request(“user”))&

md5(request(“pwd”))&

注意,原数据库中的用户名和密码都是经过MD5加密了的。

现在就不存在注入了,因为’or’=’or’会被我们修改了的MD5加密,加密后已变成“4556995b8f421800”。

经过上面几种方法的防范之后,现在还有惟一的一个问题,就是防溯雪之类软件的暴力破解。

虽然说一个字母a经过我们修改的MD5加密,让针对MD5密匙破解的程序已失效,但是如果你后台用户名和密码就用一个a,用溯雪几秒钟就能破解进入后台。

像溯雪这类POST和GET的攻击,我们可以这样修改代码,让Session来处理(这里不采用Cookie,因为Cookie很容易被伪造)。

dimt1

ifsession("

times"

)>

=3then

response.write("

<

script>

alert('

登录次数超过限制,不允许再尝试暴力破解'

);

this.location.href='

index.asp'

;

/script>

"

Response.End

session("

)=session("

)+1

t1=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1