基于ASP的网站安全性问题探讨

时间:2022-10-18 12:25:50

基于ASP的网站安全性问题探讨

摘要:目前基于ASP的网站日益增多,其安全性得到了大家的关注。本文分析了以“Asp+Access+IIS”技术开发的网站存在的一些安全漏洞,并对这些漏洞的产生原因进行了分析,提出了有效的解决策略。

关键词:ASP;Access;安全漏洞;安全策略

1 ASP常见的安全漏洞

1.1 SQL注入漏洞

许多网站都采用客户身份认证方式,用户输入正确的用户名和密码就可以访问网页,否则报错。然而由于程序员编程时对某些细节的疏忽,导致对用户身份验证存在漏洞,这就会给“or 1’=’1”这样的万能钥匙可乘之机。很多网站在登录验证时使用下面的SQL语句:

Sql="select*from user where username="& request.form("usemame")&"'and passwd=’"& request.form("passwd")&"’"

当攻击者输入用户名Zhang,密码框输入a’or’1’=’1时,该语句恒为真,就会成功登录。

1.2 Access数据库漏洞

在用Access做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的Access数据库的路径和数据库名称,那么就能够下载这个Access数据库文件,这是非常危险的。例如:Access数据库student mdb放在虚拟目录下的database目录中,那么只要在浏览器中输入:serverURL/oatabase/student.mdb。

另外由于Access数据库的加密机制也比较简单,即使设置了密码,解密也很容易。该数据库系统通过将用户输入的密码与某一固定密钥进行“异或”来形成一个加密串,并将其存储在从地址"&H42"开头文件名为*.mdb的区域内,可以很容易通过编程获得任何Access数据库的密码。

1.3 绕过验证直接进入ASP页面的漏洞

如果用户知道了一个ASP页面的路径和文件,而该文件需要经过验证才能进去,但是用户直接输入这个ASP页面的文件名,就有可能绕过验证。如在IE中输入如下代码:serverURL/search.asp?page=1,这样就可能看到系统管理员才能看到的页面。为了防止这种情况发生,会在search,asp的开头加个判断,即判断session("system_name")是否为空,如果不为空时就能进入,这样上面的URL请求就不能直接地进入管理员页面。但这种方法同样也存在漏洞,如果攻击者先用一个台法的账号,或者在本地机上生成一个ses-sion,因为session不为空,同样也能绕过验证直接进入管理员页面。

2 ASP安全漏洞防范策略

2.1 SQL注入漏洞防范策略

(1)将用户名和密码检验分开。也就是先检验用户是否存在,对于存在的用户且只有一条记录再进行密码验证,否则报错。

(2)过滤用户名和密码中的不合法字符,将代码写入到数据库连接文件中,保证网站中的每个页面都调用此程序。

(3)严格分配普通用户与系统管理员用户的权限。

2.2 数据库漏洞的防范策略

(1)可将文件名设置得不规则、位数较长,并将文件转于网站的多级目录下,让攻击者无法轻易地获取路径和文件名。

(2)可将数据库文件的后缀名改为ASP或asa,这样数据库文件仍然可以正常地被应用程序使用,且当数据库文件被浏览器执行时也不会被直接下载。

(3)可以在数据库中添加一行错误的ASP代码,管理员可以先建立一个隐藏表,表内只有一列,在表中只插入错误的一句ASP代码,当对方打开数据库的页面时只会出现ASP脚本的出错信息,而不会下载数据库了。

以上的措施并不能保证Access数据库的绝对安全,但如果在ASP程序中使用ODBC数据源,攻击者即使拿到了源代码,也无法得到数据库的物理地址,从而也无法通过下载的方式获取数据库文件。

2.3 利用Session对象进行注册验证的防范策略

为防止未经注册的用户绕过注册界面直接进入应用系统,可以采用Session对象进行注册验证。

3 结束语

由于ASP和Access本身的安全系数不高,需要将精力放在程序的安全性预防上。尽管网络安全技术不断成熟,网站系统的安全性不断提高,但是黑客攻击也越来越频繁,所以保障网站系统的安全性会是一个任重而道远的系统工程。

上一篇:数码摄像机不为人知的五个秘密 下一篇:无线AP与无线路由器的区别等