您好, 访客   登录/注册

ASP网站数据库的安全漏洞及防护对策研究

来源:用户上传      作者: 陈平

  摘要:目前,用于网页设计的开发工具很多,而ASP(ActiveServer Pages)作为一种典型的服务器端网页设计技术,它将脚本、超文本和强大的数据库访问功能融合在一起,集简单性、高效性和易扩展性于一身。本案就以ASP+ACCESS为例,浅谈数据库漏洞和网络安全防御的解决对策。
  关键词:ASP网络安全防御对策
  
  一、引言
  随着网络技术和网络规模的不断发展以及电子教育类门户的兴起,许多大学院校都建立了自己的教育类门户网站,针对网络和计算机系统的攻击已经屡见不鲜,在构建网站的时候,都会考虑网络安全问题,对于网络安全的投入较大,如使用防火墙、入侵检测、大学院校防病毒等安全产品,但网站还是有被攻击,甚至完全被控制的可能。ASP(ActiveServer Pages)作为一种典型的服务器端网页设计技术,它将脚本、超文本和强大的数据库访问功能融合在一起,集简单性、高效性和易扩展性于一身。本案就以ASP+ACCESS为例,浅谈数据库漏洞和网络安全防御的解决对策。
  二、安全问题分析
  ASP+Access解决方案的主要安全隐患来自Access数据库的安全性和ASP网页设计过程中的安全漏洞。在ASP+Access网站中,如果获得或者猜到Access数据库的存储路径和数据库名,则该数据库就可以被下载到本地。
  Access数据库的加密机制比较简单,即使设置了密码,解密也很容易。设置密码后的数据库系统通过将用户输入的密码与某一固定密钥进行“异或”来形成一个加密串,并将其存储在*。mdb文件从地址 “&H42” 开始的区域内。由于异或操作的特点是“经过两次异或就恢复原值”, 因此,用这一密钥与*。mdb文件中的加密串进行第二次异或操作,就可以轻而易举地得到数据库的密码。
  ASP程序采用的是非编译性语言即用明文方式来编写的,这大大降低了程序源代码的安全性。
  三、安全防范策略
  3.1 非常规命名
  提高数据库的安全性,就要避免包含文件和Access数据库文件被下载,并防止下载地址泄露,过滤变量输入中的非法字符和改造危险的SQL语句,对数据库内容和数据库联接字符串加密,将数据库连接文件放到其他虚拟目录下。
  如使用虚拟主机,Access数据库就命名为#文件名。asp,并且建一个临时表,表中有一字段OLE对象输入<%或%>等字符,IIS就会按ASP语法来解析,然后就会报告500错误ASP代码,让ASP不能被正确的解释。在数据库名前加上#,这样,如碰到此类SQL查询语句:“select*from d:\web\data\#data。asp。admin”, 系统会提示出错,因为#在SQL语法中有表示日期的作用,语法出错也就不会去执行查询条件了。
  如使用托管主机并且拥有主机权限,数据库应放到IIS以外的目录下。在IIS中,将数据库属性设置文件不可以读取。如Web目录在d:\web\Website目录下,那么就把数据库保存在d:\web\data目录下。
  3. 2使用ODBC数据源
  如果源代码失密后,数据库也将随ASP源代码的失密而一同失密。如果使用ODBC数据源,就能有效地解决这样的问题。所以,在ASP程序设计中,应尽量使用ODBC数据源,不要把数据库名直接写在程序中,例如:DBPath=Server。MapPath(”cmddb。mdb“),conn。Open”driver={Microsoft Access Driver(*。mdb)};dbq=“&DBPath,万一泄漏了源程序,那么Access数据库的名字就一览无余,因此要在ODBC中设置数据源,在程序中这样写:conn。open”ODBC-DSNname“。
  3.3止ASP源代码的非法访问
  3.3.1对目录设置不同的属性
  为了有效地防止ASP源代码泄露,在设置Web站点时,将HTML文件同ASP文件分开放置在不同的目录下,然后将HTML子目录设置为 “读(Read)”,将ASP子目录设置为“执行(Execute)”,这不仅方便了对Web的管理,而且最重要的是提高了ASP程序的安全性,防止了程序内容被客户所访问。
  3.3.2对ASP页面进行加密
  为防止ASP源代码的非法访问,可以对ASP页面进行加密。一般有两种方法对ASP页面进行加密。一种是使用组件技术将编程逻辑封装入DLL之中;另一种是使用微软的Script
  Encoder对ASP页面进行加密。使用Script Encoders可以对当前目录中的所有的ASP文件进行加密,并把加密后的文件统一输出到相应的目录中。Script Encoder只加密在HTML页面中嵌入的ASP代码,其他部分仍保持不变,仍然可以使用常用网页编辑工具对HTML部分进行修改、完善,只是不能对ASP加密部分进行修改,否则将导致文件失效。
  Script Encoder的运行程序是screnc。exe,格式如下:screnc[/s][/f][/xl][/l defLanguage][/e defExtension]inputfileoutputfile,其中参数:s:屏蔽屏幕输出;f:指定输出文件是否覆盖同名输入文件;xl:是否在。asp文件的顶部添加@Language指令;l:defLanguag指定缺省的脚本语言;e:defExtension指定待加密文件的扩展名。
  通过对ASP+Acecss网页应用系统安全性的研究,我们可以更好地防范校园网络站点的非法入侵,解决数据库的非法下载以及密码被修改等问题,对于Web站点的安全性,还应该对Web服务器进行设置和管理,如设置用户名、密码、权限,设置IP地址限制等,对限制系统的非法入侵,保证站点的安全,提供必要的保障。
  四、结术语
  本文从比较实际的角度讨论了ASP网站数据库建设中的存在的问题,通过对这些问题的分析,将有助于加强网站建设者的安全意识,在程序设计和安全配置方面做好网站的安全工作。只有增强web服务器、数据库文件、ASP页面等的安全性,进行严密的程序设计,才能构建一个相对较为安全的网站。
  
  
  
  
  参考文献:
  1. 张元金.ASP动态网站的安全保护机制研究 [J].网络安全技术与应用.2007(08)
  2. 周军. ASP网站系统安全技术研究[J]. 计算机应用与软件,2007. (05)
  


转载注明来源:https://www.xzbu.com/2/view-421676.htm