基于ASP+Access构架的中小学网站的安全性问题

点赞:12227 浏览:48634 近期更新时间:2024-03-11 作者:网友分享原创网站原创

摘 要:随着教育信息化的发展,越来越多的中小学开始建设并拥有自己的网站.根据调查分析,发现多数中小学网站在建设中采用ASP+Access的技术架构,由于技术本身的局限性,使得这些网站存在一定的安全隐患.基于该现状,结合工作经验,提出了几种相应的防范措施.

关 键 词 :ASP+Access;网站;安全性

中图分类号:G434 文献标识码:A 文章编号:1671-7503(2014)05-0074-02

随着教育信息化的发展,城市和经济发达地区各级各类学校已不同程度地建有校园网并以多种方式接入互联网,信息终端正逐步进入农村学校,越来越多的中小学校拥有了自己的网站.笔者通过调查发现,目前,中小学校建设网站的方式大致可以分为三种:聘请专业的公司和人员来开发;利用相关的互联网怎么写作产品,如中国现代教育网的网校平台和中国远程教育网的学校建站系统;修改开源的CMS系统等.在技术选型方面,ASP+Access由于具有入手容易、界面友好、维护方便等特点,受到设计和开发人员的欢迎,成为众多中小学网站的首选方案.虽然ASP+Access的架构不需要复杂的编程,就可以开发出专业的网站;但由于ASP+Access技术本身的局限性,使得网站系统存在不容忽视的安全隐患,如果稍不注意,就可能成为的攻击对象,从而面临页面被篡改、挂马、植入黑链等风险.本文将就这一问题进行分析,进而提出相应的防范措施来提高网站的安全性.

一、ASP+Access网站的安全隐患分析

ASP+Access网站的安全性问题一方面来源于ASP程序设计过程中的安全漏洞,另一方面来源于Access数据库的安全隐患.

(一)ASP程序设计中的安全漏洞

作为一种动态网页技术,ASP程序会根据用户的输入信息而动态改变并做出响应,由于用户输入信息的不可预测,加之编写程序时,没有对用户提交的数据进行合法性检查和过滤,致使网站系统存在一些安全漏洞,常见的漏洞有以下两种.

1.绕过验证的漏洞

某些交互程序要求用户必须登陆系统后才能操作,而进行相关操作所需的用户名、、命令等内容会显示在浏览器的地址栏中.一旦非法用户获取了这种地址,执行操作的网页本身却没有验证用户身份的程序,则非法用户直接输入该地址,即可绕过登录验证,直接执行相关的操作.

2.SQL注入的漏洞

SQL注入漏洞是很多网站普遍存在的一个安全隐患.所谓SQL注入,是指用户通过表单或地址栏提交一段包含SQL命令的字符串,根据程序返回的结果,进而分析、获取系统管理员的用户名和、数据库的类型、数据表的结构等信息,甚至对网站数据库进行修改或直接在数据库中添加具有管理员权限的用户等.

(二)Access数据库的安全隐患

1.Access数据库的存储隐患

在ASP+Access网站系统中,如果用户猜到或者获知Access数据库(*.mdb)的存储路径和文件名,就可以把数据库下载到本地.在实际的开发过程中很多程序员直接将网站数据库命名为data.mdb、database.mdb、db.mdb等,存储的文件夹名也是data、database、db或干脆放在根目录下.如此一来,只要在浏览器地址栏中输入“URL/data/data.mdb”,就可以轻而易举地把data.mdb下载到本地.

2.Access数据库的加密隐患

作为数据库系统,Access可以设置系统.但其加密机制却非常简单.其原理是:Access数据库的文件头中42H-4EH为区,在设置时,Access会将用户所设的ASCII 码与区的内容进行异或运算,然后将运算的结果存入区.由于异或操作的特点是“经过两次异或就恢复原值”,因此,用这一与Access文件中的加密串进行第二次异或操作,就可以轻松地得到Access数据库的.

因此,只要Access数据库被下载,无论其是否设置了系统,该网站都没有任何安全性可言.

二、提高ASP+Access网站安全性的措施

(一)利用Session变量进行用户身份验证

Session变量可以存储特定用户会话所需的信息,让后续的网页读取.因此,可以在需要限制访问的页面加入Session变量,一旦非法用户试图直接访问受限的页面,但程序判断相关的Session变量为空时,则强制将页面跳转到登陆页面.例如:


if session("admin_name")等于"" then

response.redirect "login.asp"

(二)防范SQL注入漏洞的方法

一般来说,防范SQL注入漏洞有三种方式:第一是编写程序代码过滤页面中post或者get请求中参数信息的非法字符;第二是通过设置IIS报错信息使非法用户无法获得有用的信息;第三是通过分开设置网站的权限使非法用户无法取得更改数据库的权限.下面介绍一种对整个网站系统进行防注的简单方法.首先从网上下载防范SQL注入通用代码,如:360通用防护代码(asp版),然后,在系统的一个公用文件头部通过添加<!--#include virtual="/360_safe.asp"-->来调用代码,以此来提高网站系统防范SQL注入的安全性.

(三)复杂化数据库存储路径和文件名

防范Access数据库被下载的简便方法是为数据库文件起一个非常规的、复杂的名字,在文件名中掺杂一些特殊符号——&、%、$、#、@等,并把它存放在多层目录下,这样可以有效地防止通过猜测方式来下载数据库文件.例如:网站数据库存储时,db等于"qhXbWk/E5i3OV/zo#Owy.mdb"的安全性就远比db等于"data/data.mdb"要高. (四)使用ODBC数据源

通常情况下,程序开发人员会将网站数据库的存储路径和文件名写在一个公用的连接文件conn.asp中,一旦该文件失密,那么,不管数据库文件名和存储路径多么复杂, 都会随源代码的失密而一同失密.而使用ODBC数据源,通过设置数据源的名字DSN(Data Source Name),就可以避免这样的问题.具体操作为“控制面板”——“管理工具”——“数据源(ODBC)”,设置“系统DSN”数据源,例如:将数据源名设为“School”.编写连接代码:

Set Conn等于 Server.CreateObject("ADODB.Connection")

conn.open"DSN等于 School"

(五)添加防下载字段并修改数据库的扩展名

运用该方法防范数据库下载,很多人认为只要将Access文件的扩展名修改为asp或asa即可,但这样操作以后使用FlashGet之类的下载工具照样可以下载数据库.该方法的关键是要添加防下载字段.其具体做法为:打开Access数据库,选择“对象”选项卡中的“查询”,双击“在设计视图中创建查询”,在弹出的“显示表”对话框中,不添加任何表,直接点“关闭”按钮,这时在工具栏中就会出现一个“SQL”按钮,点击这个按钮或在“查询”窗口中点击右键,选择“SQL视图”菜单,就会打开一个查询语句输入窗口,输入命令语句:“Create Table [nodown]([notdown] oleobject)”,然后点击工具栏中的“!”(运行按钮),这样便可创建一个“nodown”表,表中的字段名为“notdown”,字段类型为“OLE对象”,重新输入命令语句:“Insert into [nodown](notdown) values(0x3C25)”,点击运行按钮即可完成防下载字段的添加,其中,“0x3C25”为字符“<%”的16进制形式.

基于ASP+Access构架的中小学网站的安全性问题参考属性评定
有关论文范文主题研究: 关于数据库的论文范文数据库 大学生适用: 自考论文、电大论文
相关参考文献下载数量: 97 写作解决问题: 如何写
毕业论文开题报告: 论文提纲、论文设计 职称论文适用: 刊物发表、中级职称
所属大学生专业类别: 如何写 论文题目推荐度: 优秀选题

三、结束语

网站的入侵与防范就如同“矛与盾”,构建安全稳定的网络系统不是几条简单的措施就能够完成的.本文介绍的一些个人经验,只是希望对各中小学网站的安全性建设起一些参考作用.“道高一尺,魔高一丈”,单纯依靠技术防范很难保证网站的绝对安全,关键是完善和加强网站安全管理制度,例如:制定口令管理策略、定期进行漏洞扫描和病毒查杀、做好系统和数据备份等.只有系统管理员认真履行职责,严格执行管理制度,才能及时有效地防范和阻止对网站系统的攻击,构建一个相对安全稳定的动态网站.