ASP网站设计安全性分析(共8篇)
ASP网站设计安全性分析 篇1
ASP是微软推出的服务器端脚本环境,它把脚本、HTML、ActiveX组件有机地结合在一起,形成动态、交互、高效的Web服务器应用程序。是目前流行的Web应用程序开发工具之一,因其功能强大且简单易学、易于维护、灵活性大,再加上微软的强有力支持,深受网站开发人员的喜爱,是很多单位门户网站或办公系统首选的开发技术。但ASP只能工作于微软自己的操作系统平台和服务器软件之下,存在不容忽视的安全漏洞,黑客的攻击让人防不胜防,网站被黑的事时有发生,这既给单位造成了一定的经济损失,也产生了极坏的影响。为了将影响降到最低,设计与完善网站系统安全显得非常必要,试图从ASP网站被攻击常用方法进行分析,对网站管理系统进行分析与设计。
1 常用攻击方法
随着信息技术的不断发展,黑客攻击方法和手段也在不断翻新,给网站管理人员也带来了沉重的工作负担,在网站管理与维护过程中常会顾此失彼,甚至给黑客留下可乘之机。了解黑客攻击网站常用的方法,将有助于建立全面有效的网站信息安全体系。现有ASP网站常用配置方案是IIS+ASP+SQL或IIS+ASP+Access,综合分析被攻击网站,黑客攻击方法主要有两种。一种是对数据库的攻击,最简单方法是下载Acces数据库,获取用户后台登录信息,或利用SQL注入攻击检测数据库的漏洞,猜测数据库字段名称或字段值,对SQL数据库进行远程登录或获取个人登录信息。随着网站安全管理人员安全防范意识逐渐增强,及时对漏洞进行修复,这种方式已很少见。另一种是利用系统或上传文件程序漏洞上传木马,并调用服务器端组件对服务器进行控制,对页面或数据库文件进行非法篡改。从众多攻击网站的案例来看,对网站主页或某些二级页面的更改占了很大的比例。目前通用的做法是对数据加密、安装防火墙、杀毒软件等安全设置,但通过对木马的伪装很易通过上传验证。最为有效防治方法是改变文件夹写入权限,限制上传文件或对数据库添加信息,这将导致网站内容无法更新,显然是不可取的。为了解决这一问题,ASP网站安全管理系统就是监测网站文件的内容,实现系统安全管理的目标。
2 设计与实现
2.1 系统工作原理
要防止黑客入侵,仅靠防火墙、入侵检测系统是远远不够的,这些技术只是从防御的角度来防止入侵,并不能从根本上解决问题。ASP网站安全管理系统是当防火墙等安全措施失败后,对安全防御系统的最后一道防线,是文件被非法篡改后“亡羊补牢”的有效措施,将损失尽可能降到最低。其工作原理是ASP网站部署完成后,将其备份到不同的盘符目录下,启动管理系统监测指定的文件或文件夹,不间断将文件和数据库保存信息相比较。当内容发生变化时,及时保存防火墙等安全日志记录,并向网站管理人员发出告警,启动恢复系统,将备份文件复制至网站目录下。为安全防御系统提供一种及时的主动响应,并为网站内容实行24小时的实时监控。通过简洁的管理界面,对网站的管理变理轻松自在,杜绝了由于网站管理失误而带来的网站安全隐患。
ASP动态网站工作原理是当接收到请求后,根据请求从数据库中查找内容并返回客户端,对网站内容正常更新一般只是数据库和上传目录会发生变化,脚本文件内容不会发生变化,即是脚本代码不会变化。通过上述分析可知,黑客为了达到攻击的目的,只能是修改脚本文件或修改数据库的内容。系统运行过程中,就可比较脚本文件和数据库文件的属性,如文件大小、创建修改时间等。也可对文件的内容进行全文对比,可对文件夹中文件数量的多少进行对比,如果上述任一发生变化,即可视为网站受到攻击,并作出正确的处理。
2.2 系统组成
系统主要由系统监测、系统备份和恢复两部分组成,系统监测主要包括监测设置和系统监测,系统备份和恢复主要是当网站受到攻击时作出的处理。为了降低运行成本和快速恢复,本系统设计为单机并在ASP服务器上运行。现对文件检测主要有文件属性和文件内容两种方式,文件属性检测比较常用的是比较文件的大小等属性,虽然这种方法比较简单,但当黑客通过精心设计,将替换文件属性和原文件属性设置完全一样时,系统就无法及时检测出来。而文件内容检测,并对整站文件或文件夹进行不间断扫描检测,会影响ASP服务器的性能。
为了解决上述问题,在本系统中将网站文件按是否易受攻击分为两个等级,不同的等级采用不同的监测方式,如重点等级为网站需重点监测的文件,不论监测时间间隔长短都应比较文件的内容,一般等级文件将文件属性和文件内容检测混合进行,如间隔5分钟检测文件属性,间隔10分钟检测文件内容,系统可由用户对文件进行等级划分。并可由用户将不同等级的文件的扫描检测时间间隔设置为不一样,等级高的时间间隔可以设置较短,对等级较低的可将间隔设置较长,这可减轻系统的负担,满足用户不同的需求。同时,为了提高系统的性能,减少系统的开销,文件内容比较在本系统中采用文件的数字签名比较方式,如MD5签名算法,针对字符串或文件生成32位字符的签名比较两个文件或字符串只需比较MD5签名就行了,能迅速比较出两个字符串或文件的异同。由于数字签名的不可伪造性,确保文件内容的相同。
系统的运行是保障网站的安全,但正常的网站内容更新和维护也会视为受到攻击。为了进行区别,在本系统中当检测到文件内容发生变化时,不是立即恢复网站内容,而是对其他条件进行检测。如在网站数据库表中保存某一个值,系统通过网页页面读取其值并解密,如果正确就将整站文件进行备份,否则就视为网站受到攻击,系统就直接将整站文件进行删除,并复制备份目录下文件至站点目录中,系统监测过程如图1所示。
在系统设计中将网站的备份放在Web虚拟目录之外的其它盘符目录。但由于系统软件与ASP服务器运行在同一台服务器上,如果入侵者能进入到虚拟目录以外的地方,则可能对备份也有破坏,这要正确配置系统,关闭除Web之外不必要的服务和端口,并安装防火墙对信息加以过滤。
2.3 系统模块
设计并实现的网站安全保护系统,可检测出网页文件是否发生变化,必要时可对网站进行恢复。本系统主要由登录模块、监控设置模块、监测模块、系统备份和恢复模块组成。
(1)系统登录模块,负责对操作人员的身份验证,只有输入正确的账号和密码才能启动或退出本系统。为了防止黑客对密码的破解,须对密码进行加密处理保存到数据库中。同时,为防止黑客添加新账号和密码进入系统,可将账号作为数据表的主键,设置不能添加多个账号等限制。
(2)监控设置模块,主要是对系统监测的页面进行管理,包括添加、删除和修改。在添加页面时,通过界面打开网站虚拟目录位置,选择对应文件即可对其进行操作,主要包括设置监测扫描的时间间隔、扫描等级和文件大小、修改时间、数字签名等信息,并将这些信息保存到数据库中。当对网页进行更新时,可先停止监测检查,通过修改页面对文件信息进行更新。
(3)监测模块,主要用于对各文件或文件夹进行扫描比对。根据系统设计,文件监测主要分为两个等级,可放置多个定时器,较低等级监测短时间内比较文件的大小、文件属性,较长时间间隔比较一次文件内容,高等级文件比较文件的数字签名。若发现文件有变化,就启动备份和恢复模块对网站进行恢复,为了方便管理,在界面中设置启动和停止监测按钮。
(4)备份和恢复模块,用于当网站文件发生变化时,用备份文件覆盖网站原文件,在网站文件有更新时,使用系统将网站文件备份到指定的目录。在恢复网站文件时,为了达到彻底清除黑客攻击影响的目的,采用将原网站文件进行删除,再将备份文件复制至网站虚拟目录下的方法。当发生恢复时,进行日志登记,并发出警报声提醒网站管理人员。
3 结语
计算机网络的发展给人们带来了极大的方便,也因黑客的存在扰乱了正常的网络秩序。在网站安全管理中,仅靠防火墙等安全设施是无法保证网站安全的,设计与完善网站内容防护系统是非常有必要的。随着黑客攻击手段不断翻新,应对系统防御方法不断升级,如实行网站服务器和系统监测分离、备份目录不在网站服务器中等。只要计算机系统存在安全漏洞,计算机系统就有可能被黑客攻破。因此防范黑客攻击,保障计算机系统安全是一项任重道远的工作。
参考文献
[1]高延玲,张玉清,等.网页保护系统综述[J].计算机工程,2004,(10).
[2]赵井文.Visual basic程序设计案例教程.北京:北京交通大学出版社,2007.
[3]黄金波.ASP动态网页设计实用教程.北京:北京交通大学出版社,2009.
[4]张建化.Web页面防篡改及防重放机制[J].计算机应用,2006,(02).
[5]王险峰,王静滨.丢失数据恢复系统的设计与实现[J].计算机工程与设计,2004,(11).
ASP程序设计与WEB信息安全 篇2
关键词:ASP 程序设计 WEB 信息安全
中图分类号:TP311.1文献标识码:A
文章编号:1673-8454(2007)11-0070-02
WWW应用服务,是目前因特网应用最为广泛的服务,随着网络对人们生活方式的不断影响和改变,人们越来越依赖于这种服务。然而WEB信息安全现状却不容乐观。WEB信息安全威胁可来自计算机病毒、操作系统、以及数据库系统等潜在的安全漏洞,还可来自于WEB程序代码编写的不完善。本文从ASP程序设计角度对WEB信息安全及防范进行分析讨论。
一、ASP程序设计与脚本信息泄漏隐患
(1) .bak文件
有些程序员习惯将程序代码的备份文件存储为.bak文件,而.bak文件的内容可以通过浏览器进行查看,这就埋下了源代码泄漏的隐患,将可能导致敏感信息如数据库名、表名、用户名、密码、文件目录等信息的泄漏。
(2) .inc文件
有些程序员喜欢把常用的代码或配置信息写在一个.inc文件中,如conn.inc、global.inc、shared.inc等等。.inc、 .bak文件和其它文本一样,当在浏览器中浏览时,会毫无保留地显示其内容。攻击者可借助搜索引擎快速地查找到存在脚本泄漏隐患的网站及其中包含敏感数据信息的文件。如果利用搜索引擎搜索“conn.inc”,则会暴露出许多网站存在脚本信息泄露隐患。因此重要信息,如数据库连接或配置信息不能以inc为后缀命名,应以 .asp 命名;也可将数据库连接保存在Application中,直接引用,但这种方式对系统资源有消耗。
二、ASP程序设计与验证不全漏洞
程序设计时,通常在浏览敏感信息之前需进行用户验证,验证通过后,用户就获得了敏感信息的访问权。但是如果用户跨过验证入口后,对于敏感区域内部的其它网页就不再进行验证,那么这个验证就形同虚设,不法用户会利用这个漏洞,绕过验证页,直接通过链接地址浏览网页,造成敏感信息泄露。因此,在程序设计时必须确认每一个访问请求是经合法用户发出,敏感区的每一个网页都需验证后才能浏览。可以使用session变量解决验证不全漏洞。
例如:将用户名、密码定义为session变量:
如果经验证该用户是合法用户,就定义Session变量:
session("UserName ")=UserName
session("PassWord")=PassWord
敏感区的每一个文件都需验证上述这两个session变量,如果session("UserName ")和session("PassWord")不为空,则是合法用户;反之,则应跳转到登录页面进行登录验证,这样就给敏感区的每一个页面加上了安全保护。
三、ASP程序设计与SQL 注入漏洞
在B/S应用开发模式下,程序代码如果对用户输入数据的合法性不进行检测或检测不严,就会使应用程序存在安全隐患。攻击者可以通过浏览器的输入区域,利用某些特殊构造的SQL语句插入SQL的特殊字符和指令,从而收集程序及服务器的信息,获取想得到的资料,甚至获取网站管理员的帐号和密码,这就是SQL注入(SQL Injection)。SQL注入通过正常的WWW端口对页面请求访问,和正常的WEB页面访问没什么区别,因此,SQL注入能够避免大多数防火墙的防御,绕过系统的安全防护。因此防御SQL漏洞攻击依赖于完善的程序代码。
SQL注入的手法比较灵活,既可以在浏览器的地址栏进行,也可以通过表单输入框进行,如利用用户名、密码输入框;文本输入框、下拉菜单等进行SQL注入攻击。如果程序代码对用户输入信息检测不严格,就可能导致服务器执行恶意指令威胁信息安全。
在B/S系统编程过程中,经常需依据用户的输入信息执行查询操作,下面是一个利用用户名、密码输入框进行注入攻击的例子。如:
sql="select * from 表名 where username=′"&user&" ′and password=′"&pass&"′ "
如果用户在用户名、密码框中同时输入:
a′ or′1′=′1或者′ or′′=′
那么拼装后的Sql 语句为:
sql="select * from 表名 where username=′a′ or ′1′=′1′and password=′a′ or ′1′=′1′"
或
sql="select * from 表名 where username=′′or′′=′′and password=′′ or ′′=′′ "
这样的查询可能会带来灾难性的结果,即整个数据表的信息被全部检索出来,造成严重的信息泄露。
问题的解决依赖于程序代码的完善,可以从以下几方面来封堵漏洞。
·对客户端提交信息进行封装;
·在服务端正式处理之前对用户提交信息进行合法性检查,对于一些特殊或敏感字符及字符串进行转换或过滤处理,常见的敏感字符包括:“′” 、“"”、“;”、“:”、“>”、“<”、“&”、“+”、“-”、“%”、“*”等等;常见的敏感字符串包括:“exec”、“insert”、“select”、“delete”、“”update、“count”、“truncate”等等;
·屏蔽出错信息,使用出错处理函数,显示友好的错误界面,防止攻击者根据错误提示寻找漏洞进行攻击;
·敏感信息,如用户密码等应加密存储在数据表中;
·WEB页中下拉菜单的值要定义好,以防被注入攻击。
四、ASP程序设计与缓冲区溢出漏洞
在WEB程序设计时除需防御攻击者利用某些特殊构造的SQL语句进行SQL注入攻击,还应对用户提交的输入变量根据需要规定适当的长度或数值限制,防止利用溢出漏洞进行攻击。不法用户往往通过往程序的缓冲区写入超出其长度的数据,造成缓冲区的溢出,破坏程序的堆栈,改变程序正常流程,使程序转而执行其它指令,以达到攻击的目的。
五、ASP程序设计与数据库访问权根
ASP程序调用SQL SERVER数据库时,应为每个被调用数据库设定一个面向应用的用户名和密码,并对用户权限进行合理设置,禁止使用sa用户,以防数据库被攻破后,入侵者得到当前数据库权限的同时获得整个数据库服务器的管理权限。对于ACCESS数据库,为保证数据库的安全,可将数据库名改为其它文件后缀名;不要将数据库文件保存在Data目录下,以防被非法下载和猜解。
本文仅从程序设计的角度对WEB信息安全做了分析,WEB信息安全还依赖于多方位措施来保障。对于服务器,安装防火墙并及时升级,及时更新操作系统的SP补丁程序;关掉不需要的网络服务,防止打开的服务端口成为黑客攻击的入口;对服务器及数据库系统用户权限进行合理设置;定期查看各服务程序的日志,以便及时发现入侵现象等。此外,还可利用专门工具检测程序设计存在的安全漏洞。
参考文献:
[1]陈明奇. CNCERT/CC2006年网络安全形势分析[J]. 信息网络安全,2007(4)
[2]2006年全国信息网络安全状况与计算机病毒疫情调查分析报告[J]. 信息网络安全,2006(9)
ASP网站安全探讨 篇3
根据单位或个人的实际需求, 可采用服务器租用 (空间租用) 、服务器托管及自备服务器等方式。其中空间租用是指租用IDC服务商的服务器空间来建立网站;服务器托管是指自己准备服务器, 但将此服务器交由IDC服务商来管理;所谓自备服务器是指自己准备服务器并完全自主管理及应用。其中, 后两者的机器均是自己准备的;而前两者所使用的互联网线路均不用自己考虑。
网站的硬件安全主要指的就是服务器本身的安全, 即实体安全。计算机实体安全是指为了保证计算机信息系统安全可靠运行, 确保在对信息进行采集、处理、传输和存储过程中, 不致受到人为或自然因素的危害, 而使信息丢失、泄密或破坏, 对计算机设备、设施 (包括机房建筑、供电、空调等) 、环境、人员等采取适当的安全措施。是防止对信息威胁和攻击的第一步, 也是防止对信息威胁和攻击的天然屏障, 是基础。主要包括以下内容:
(一) 环境安全
主要是对计算机信息系统所在环境的区域保护和灾难保护, 要求计算机场地要有防火、防水、防盗措施和设施, 有拦截、屏蔽、均压分流、接地防雷等设施;有防静电、防尘设备、温度、湿度和洁净度在一定的控制范围等等。
(二) 设备安全
主要是对计算机信息系统设备的安全保护, 包括设备的防毁、防盗、防止电磁信号辐射泄漏、防止线路截获;对UPS、存储器和外部设备的保护等。除此之外, 人员因素也非常重要。试想, 如果各方面做得都像铜墙铁壁, 但对“门”的管理却不严, 会有什么后果?
二、ASP网站的安全配置
ASP网站的实现基本采用Window s 2003 Se rve r+Inte rne t Inform ation Se rvice s (IIS) 。众所周知, 微软的东西以补丁著称, 所以, 对于Windows2003Server, 及时地打好补丁是必须的、是第一位的。
其次, 系统的杀毒软件及防火墙也是重要的一个方面。杀毒软件必须及时更新并经常查杀;而防火墙也有硬件防火墙和软件防火墙之分, 如条件许可, 最好采用优质的硬件防火墙。Windows2003Server和以前的版本相比, 已经作了很大改进, 所以对用户来讲, 只要开通必要的服务即可。这样就可以避免98%以上的蠕虫和变种病毒的入侵。
在这里, 跟网络的拓朴结构也有很大关系, 即WEB服务器放在何处?如果将服务器放在内网, 通过防火墙作IP地址及端口映射, 那肯定比直接将WEB服务器放在外网要好得多。
在IIS的安全方面, 在访问权限上, 一般来说不要把“脚本资源访问”、“写入”、“目录浏览”等选中;在执行权限上, 也只要选择“纯脚本”足矣。不要让IIS目录有执行程序的权限, 因为绝大多数的网站不需要这个。对用户上传的文件, 放在一个固定的目录下, 并设置这个目录不允许执行任何脚本。将网站文件夹放到一个专用的NTFS分区上, 并要设置相应的安全的NTFS权限。NTFS驱动器一般禁止使用“EVERYONE/完全控制”权限。作为网站管理者, 可以经常在服务器的命令行状态下运行“netstat-an”来观察有多少IP地址正尝试和你的端口建立连接, 从而尽早地发现一些可能存在的问题。
三、ASP的程序
(一) Active Server Pagers的工作流程
1) 用户在浏览器的地址栏中填上要访问的主页地址并回车触发这个申请。2) 浏览器将申请发送到IIS的Web Server上, Web Server接收这些申请并根据.asp的后缀名意识到这是一个Active Server Page rs要求。3) We b Se rve r从硬盘或内存中接收正确的ASP文件, 然后将文件发送到一个特定的名为Asp.DLL的文件中。4) ASP文件将被从头到底地执行并根据命令要求生成响应的静态页面。5) 静态页面将被送回浏览器, 被浏览器解释执行并显示在用户的浏览器上。
(二) Session和Cookies
Se s s ion主要用途是保存信息, 访问者从到达某一个特定主页到离开为止的那段时间, 每一个访问者都会单独获得一个Session。浏览器用一个或多个限定的文件支持Cookies, 它们被用来存储Cookies用户数据。WEB服务器可以用Session和Cookies配置带有用户特定会话信息的ASP应用程序。所以, 我们应当在ASP程序中注意保护Se s s ion和Cookie s, 因为截获了Se s s ion和Cookie s的计算机黑客可以使用此Cookies假冒用户。
(三) 保护数据库
在ASP程序中经常用到的数据库有ACCESS和MSSQL等。数据库不一样, 只是数据库的连接方式及数据库的字段类型等信息不太一样, 而数据库的访问基本没有多大差别, 可以说能够用几乎同样的数据库操纵语句来访问不同的数据库。而数据库内容几乎就是一个网站的“精髓”, 所以保护数据库显示额外重要。对于ACCESS这样的小型数据库, 主要是要防止数据库被下载;而对于MS SQL、ORACLE等这些大型数据库, 主要要防止连接数据库的用户名和密码泄露;而不管是哪种数据库, 都会面临同样的问题, 那就是黑客利用ASP程序中的漏洞修改数据库的内容。最典型的就是“SQL注入”。
SQL注入的原理, 就是从客户端提交特殊的代码, 从而收集程序及服务器的信息, 从而获取你想到得到的资料。SQL注入是从正常的WWW端口访问, 而且表面看起来跟一般的We b页面访问没什么区别, 所以目前市面的防火墙都不会对SQL注入发出警报, 如果管理员没查看IIS日志的习惯, 可能被入侵很长时间都不会发觉。
从分析SQL注入的原因或者了解SQL注入的过程, 程序员就可以明确以下几点:首先, 在程序中要对从URL中的后缀 (指asp文件名后面的参数) 进行检测并作一定的处理。其次, 在IIS设置中, 在“应用程序配置/调试/脚本错误信息”中选择“向客户端发送文本错误消息”。也就是不要让服务器端的错误信息发到客户端。这里还要注意的是如果采用了一些下载的ASP源代码, 那一定要注意数据库的保护, 因为在这些源代码里面, 数据库信息是公开的秘密。
四、结束语
系统架设时的不小心, 程序编写时的不注意, 往往就是可能导致泄密的主因。为了减少这种安全漏洞的威胁, 程序员要确定你的网页服务器没有任何会泄漏珍贵信息的程序或操作系统漏洞, 只安装你需要的东西, 并且定期对服务器进行检查并加装补丁, 到网上了解最新的系统安全消息和知识。
摘要:ASP是常用的网页开发技术, 它简单而实用, 但开发一个ASP网站并使之能够真正付诸使用, 却不得不将它的安全问题提到第一位。
关键词:安全,ASP,IIS,数据库
参考文献
[1]石志国编著.ASP动态网站编程[M].清华大学出版社, 2001.
浅析基于ASP的网站安全问题 篇4
1 网站安全的重要性
现在, 网络上的网站数量繁多, 并且已不仅仅是静态网站形式, 而是更加注重于与网民的互动性。其中, 重要的一块是电子商务类网站, 比如在线支付、在线交易、在线商城等等, 方便了广大人民群众, 提高了工作效率, 减少了现场交易等待时间。同时, 各种网站上都有不少网民的隐私。
网络上充斥着各种数据信息, 威胁了网站的安全。如果一个网站不安全, 则用户的交易数据、用户的个人隐私, 则暴露在网上, 对个人财产等造成一定的威胁。所以, 一个网站的安全直接关系到了网民的个人信息的安全。
2 ASP脚本介绍
ASP (Active server pages) 是一套微软开发的服务器端运行的脚本平台, ASP内含于IIS当中。我们可以结合HTML、ASP指令和ActiveX元件, 建立出动态的、交互的和执行高效的Web服务器应用程序。
A S P的工作模式是:A S P脚本是经过Web服务器解析之后, 向浏览器返回数据。所有的脚本都在服务器端执行, 包括所有嵌在普通H T M L中的脚本程序。当程序执行完毕后, 服务器仅将执行的结果返回给客户浏览器, 这样减轻了客户端浏览器的负担, 大大提高了交互的速度。
ASP具有如下优点:脚本无须编译、运行与浏览器无关、面向对象性、与ActiveX script兼容。
3 基于ASP的网站主要问题
ASP具有简单、易学性, 用户可以方便的编制出动态网页。但是, 需要看到使用ASP编制的网站的安全性不容忽视。非法用户通过ASP网页的一些漏洞, 攻入系统, 可以获得合法用户的权限, 或者获得服务器的权限。常见有如下几种攻击方式。
3.1 SQL注入攻击
ASP编制的网页具有动态性, 需要和用户发生交互, 完成一些动作。比如:用户输入用户名和密码登录网站。但由于编程人员未对用户输入的信息检查, 导致这里存在漏洞, 非法用户可以构造特殊的字符, 骗过网站的验证机制, 登录网站。比如, 网站使用如下的sql语句验证用户的信息。
Sql=“select*from user where username=’”&request (“username”) &”’and password=’”&request (“password”) &”’”
当用户输入用户名为user‘or’1’=’1, 密码任意时, 以上语句可以正常执行, 就会成功登录系统。
3.2 暴力破解用户名密码
非法用户惯用的手段, 如果知道了某个用户的用户名后。通过暴力手段的形式, 不断尝试各种密码, 以破解其密码, 而登录系统。对于一些简单的密码, 这种方法可行, 如果一些复杂的密码, 则需要较长的时间。
3.3 通过数据库S Q L获取服务器权限
在一些页面, 直接带有变量和参数形式, 比如:http://....../view.asp?id=1。用户可能尝试id=1中的参数是否有过滤, 如果网站编辑者未对参数过滤, 则页码会显示默认的错误信息。用户可以通过默认的错误信息, 判断该网站使用的是何种后台数据库, 如果判断是Sql Server数据库, 则可以进一步攻击网站。很多网站都使用Sql Server的默认用户名sa连接数据库, 则用户使用如下语句。
http://....../view.asp?i id=1;exec master..xp_cmdshell"net user hello 123/add"--。
用户通过有漏洞的语句, 执行了一个存储过程, 创建了一个用户名hello, 其密码为123的Windows账号。接着执行如下语句。
http://....../view.asp?id=1;exec master..xp_cmdshell"net localgroup hello administrators/add"—。
将新建的帐号hello加入到服务器的管理员组中, 用户拿到了系统最高权限。
3.4 下载数据库
有些小网站, 使用了Access数据库。由于管理员喜好用一些开源网站, 或使用一些常用的文件夹存放数据库文件。有些非法用户会尝试一些常用的地址和数据库名下载数据库文件。
3.5 猜测用户表
网站建设者在建立数据库表时, 用一些大众化的表名, 比如user、admin等等。一些有漏洞的网页中, 非法用户会尝试各种方法获取用户的内建表, 常用的方法是猜测各种表名。达到攻击网站的目的。
3.6 上传木马
网上有恶意的ASP代码页, 具有极强的控制计算机能力。有些网站提供了上传文件功能, 用户可以上传一些文件共享。但如有非法用户上传了带有恶意的A S P代码页, 则可以远端运行这样的页码, 轻易操纵和控制服务器。
3.7 服务器漏洞
服务器的Windows操作系统由于其广泛使用, 很多人在不断研究这种操作系统, 发现其漏洞。有些管理员不常更新Windows操作系统, 造成了漏洞一直存在。如果这些漏洞被非法用户利用, 则服务器就很容易被人攻击。
以上介绍了几种常见的网站攻击方式, 多数都是由于网站编程者和网站管理员的疏忽造成的。有很多的漏洞都可以预先知道并避免的。
4 防范措施
ASP脚本的易用性, 促使了很多编程者的吹捧, 但也有很多人在研究其弱点。每一种编程语言都无完美性, 但是, 只要加以防范, 有很多风险是可以避免的。下面介绍之。
4.1 验证用户输入
网站编程者在编程时, 就应该把安全放在首位。在要求用户输入的地方, 或网页传递变量的地方, 都要完全验证, 以防止SQL注入等的漏洞产生。比如:使用如下方法验证用户是否输入了不符合要求的信息。
4.2 数据库安全性
Sql Server具有安装方便和使用容易等优点。以至于有些网站管理员忽略了其安全性。首先, 给默认的用户sa一个强的密码, 比如数字和字母混合的密码, 增加其被破解的难点。其次, 网站连接数据库时, 禁止使用默认的sa用户, 使用一个具有最低权限的数据库用户。网站连接数据库时, 用户名和密码暴露在网页中, 一旦非法用户获取到了这样的网页, 就等于获取了服务器的最高权限。如果使用一个权限小的用户连接, 这样即使非法用户得到了这样的用户名和密码, 也不会对整个服务器构成威胁。
使用Access数据库时, 应尽量给数据库文件取一个长的名字, 这样不容易被别人猜中。其次, 改数据库文件的后缀, 比如将默认后缀mdb改为asp等。同时, 将该文件放到一个不易被猜中的文件夹中。这些手段都可以有效防止Access文件被下载。
4.3 阻断上传木马
在设计网站时, 如果不需要用户上传程序, 则尽量给用户屏蔽上传文件功能。如果确实需要用户上传程序, 则需要对文件上传文件进行审核, 比如, 禁止用户上传以ASP为后缀的文件, 禁止上传可执行文件等等, 将这方面的危险降到最低。
4.4 禁止用户多次尝试登录
现在有些自动登录程序, 可以重复尝试登录系统。这时, 可以限制用户尝试登录系统的次数, 比如1小时内只能尝试登录10次等等。另一种方法是, 网页随机生成数字, 用户只有输入这些有效数字, 才能有可能登录系统, 这阻断了一些自动登录程序的干扰。
4.5 建立数据的备份
及时备份数据文件是好的习惯, 这防止了数据的丢失而造成的损失。网站管理员可以手工备份, 也可以采用定时备份的方式备份数据。
4.6 经常更新服务器操作系统
经常更新Windows系统, 可以有效阻断由于操作系统的漏洞造成的损失。网站管理员需要经常关心Windows的官方网站, 及时发现新的补丁程序并下载和安装。同时, 需要多关心一些官方的报道。这样, 可以及时保证操作系统的安全性。
5 结语
ASP编制的网站数量越来越多, 现在, 人们已逐渐意识到网站的安全性问题。由于ASP使用人数多, 发现其漏洞的可能性就会更大。这就需要编程人员多关心这方面的安全知识, 在编程中养成好的编程习惯, 避免一些常见的安全漏洞。同时, 网站服务器的管理也是很重要的一方面, 需要重视服务器安全的配置。以上只是简单探讨了ASP网站的一些安全漏洞和一些解决措施, 有些更深入的探讨需要编程人员在实践中掌握。
参考文献
ASP网站设计安全性分析 篇5
1 基于ASP.NET的网站安全问题分析及防范措施
1.1 保护隐藏域的安全
在ASP.NET应用中,几乎所有HTML页面的_VIEWSTATE隐藏域中都可以找到有关应用的信息。攻击者可以方便地解码BASE64数据,从而得到_VIEWSTATE中提供的详细资料,达到窃取用户资料的目的。
要解决这个问题,需要设置Enable ViewStat MAC=“true”,启用_VIEWSTATE数据加密功能。然后,将machine Key验证类型设置为DES,要求ASP.NET用3DES对称加密算法加密VIEWSTAT数据。
1.2 恶意脚本注入攻击问题
恶意脚本注入指用户将恶意的脚本代码输入到网页文本框控件中,如“”。单击网页的提交按钮,网页首先执行该脚本弹出提示为“你好!”的对话框,即攻击者可以通过向输入框中输入script代码来实现攻击目的。
要有效抵抗入侵者的攻击,一方面严密地验证用户输入的合法性,应用程序可以用多种方法执行验证。另一方面,在ASP.NET中使用“<”和“>”来标注脚本代码。因此只需对用户输入的“<”和“>”等恶意代码进行屏蔽,即可阻止网页执行恶意脚本。解决此漏洞的方法是构建一个双层安全过滤系统,对网页中用户发送的数据进行验证和重新编码,确保浏览器只把用户输入的数据作为普通文本内容,而不是一段代码。
过滤代码如下:
使用这段过滤代码对用户输入的内容重新过滤后,代码中的“<”和“>”字符被过滤并重新编码,恶意代码中的“