时间:2022-04-05 05:36:55
摘要:在全球信息化时代到来的当今社会,ASP动态网站被应用到社会生活中各个领域。随之而来的网站后台安全问题也日益突出,针对动态网站遇到的安全问题,只有制定具体解决方案,才能为网站运行的安全性提供切实的保障。
关键词:ASP;系统安全;网站后台
中图分类号:TP393文献标识码:A 文章编号:1009-3044(2008)17-21389-02
1 引言
随着世界信息化时代的到来,互联网已经成为人们生活密不可分的一个重要组成部分。越来越多的单位和个人在网络上搭建属于自己的网络平台。网站的制作技术也由原来的单一的静态技术向动态技术转变。目前,大部分的网站都搭配有自己的后台系统,以便及时进行信息更新和维护。ASP网站后台系统凭借其开发周期短,存取数据库方便,执行效率高而成为众多网站程序员的首选开发技术。但随之而来的安全性也越来越受到大家的关注。因此为ASP网站后台提供安全保护也变得极其重要。
2 后台实现
为了对ASP后台管理文件提供安全保护。首先我们设计一个后台登陆系统。后台登陆系统以ASP作为主要的编译环境,使用Access作为数据库。在Access数据库中建立一个数据库,设置两个字段name和password用于存储后台管理员用户名和密码。
下面开始编写ASP程序。本系统主要包括一个登陆界面程序(login.asp)、检查用户名和密码程序(check.asp),另外为防止黑客攻击还增加了验证码程序。
后台登陆界面程序login.asp代码如下:
<html>
<head>
<title>后台管理系统</title>
</head>
<body>
<form ha/nero“forml”method=“post”action=“check.asp”>
<table width=“450”height=“289”border=“0”cellpadding=“0”
cellspacing=“0”background=“images/admin.gif” align=“center”>=后台登陆界面图象
<tr>
<tr beight=“98”> </td>
<td v align=“top”>
<table cellspacing-=0 cellpadding=0 width=260 border=0 align=“center”>
<tbody>
<tr>
<td height=“28”style=“line-height:180%”>帐 ;&nhsp;号:
<inputname=“a_userid”type="text” class=“buttonl”id=“a_userid” size=“20”>
</td>
</tr>
<tr>
<tdheigllt=“28”style=“line-heigllt:180%”>密 ;
;码:
<input name=“a_pwd”type=“password”class=“buttonl”id=“a_pwd”size=“20”>
</td>
</tr>
</tbody>
</table>
</td>
<td> ;</td>
</tr>
</tr>
</td>
<div align=“center”><a href-”,"><font color-=-“#0000FF”>返回首页</font></a></div>
</td>
<td>
<input ype=image height=23 width=62src=“images/btn_index_ok.gif border=0name=submitl>//登陆按钮
<img onMouseOver=“event.srcElement.style.cursor=“hand”
onClick=cancelOheight=23 src=“images/btn_index_cancel.gif” width=62border=0>//取消按纽
</td>
</tr>
</table>
</body>
<html>
在上面的程序中我们用到一个检查用户名和密码程序check.asp。代码如下:
<%
dim name,password
name=request.from.(“name”)
dim.exec,conn,rs
password=request.from(“password”)
exec“select*from check where (name=“&name&”and password=“&password&”)”
setconn=server.createobject(“adodbconnection”)
conn.open”driver={microsoft access driver(*.mdb)}.Dbq=&server.mappath(”admin.mdb”)
set rs=server.createobject(“adodb.Recordset”)
rs.open exec,conn
if not rs.eofthen,
rs.Close
conn.Close
session(“checked”)=“yes”
session(“check”)=“right”
response.Redirect“admin.asp”//后台管理主程序
else
session(“checked”)=“no”
session(”check”)=“wrong”
response.Redirect“login.asp”
endif
%>
为了增加登陆系统的安全性。避免一些黑客通过穷举法和数据字典来盗取用户名和密码,我们还在登陆界面程序中增加验证码程序.实现方法是在login.asp中增加代码:
<tr>
<td height=“28”style=“line-height:180%”>附加码:
<input name=“a_rpwd”type=“text”class=“buttonl”id.“a_rpwd”
size=“20”> <img src=“GetCode.asp”>
<input type=“hidden”name=“action”value=“true”>
<input type=“hidden”‘name=“position”value=“<%=Position%>”>
/td>
</tr>
在check.asp中增加代码:aRePassWD=Trim{Request(“a_rpwd”)}
3 结论
制作完后台登陆系统后,我们还要对一些系统安全隐患进行设置。
(1)管理员用户名和密码的安全。尽量使用数字和字母相结合的用户名和密码,并且密码的长度最好大于6位。
(2)登陆界面程序(login.asp)的安全。在IIS中进行安全设置,使登陆页面只能在限定的IP地址上才能打开。这样的话就算黑客破译的密码。也无法实施破坏。
(3)数据库的安全。数据库的名字不要取的太简单,如data.mdb。另外,还可以把数据库的后缀改为.asp,这样黑客就不容易直接找到数据库。
(4)后台管理程序的安全。为了防止不是管理员的用户非法登陆。我们还要用到SESSION组件,把以下代码放入每个要登陆才能使用的程序头部,这样不是管理员的一般用户就无法打开这个页面:
<%
if not session("isaadmin")="yes"then
response.redirect"login.asp"
%>
(5)inc文件的安全。在动态网站中,Asp文件的数据库处理,很多时候是写成代码放在一个inc文件中.那些要用到数据库处理的Asp文件.只要在文件最前面加上一个包含inc文件的命令就可以了。对于inc文件隐患的问题.程序员可以对ine文件进行加密,或者把ine文件转换成asp文件保存。 通过以上措施,可以为Asp后台提供较好的安全保护。
参考文献:
[1] 汪晓平,钟军,ASP网络开发技术[M].人民邮电出版社,2006.
[2] 强锋科技,顼宇蜂,马军.ASP网络编程从入门到精通[M].清华大学出版社,2006.
[3] 张景峰.ASP程序设计教程[M].中国水利水电出版杜,2003.
[4] 宋彦浩.ASP建网技术源代码公开[M].中国水利水电出版社,2001.
[5] 蔡立军.计算机网络安全技术[M].中国水利水电出版社,2002.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文