ASP网站安全问题
ASP网站安全问题(精选9篇)
ASP网站安全问题 第1篇
关键词:ASP,Access,数据库,安全
1 ASP的工作模式和优势
ASP (Active Server Page) 是一种服务器端脚本编写环境, 可以用来创建和运行动态网页或Web应用程序。它可以与数据库和其他程序进行交互, 是一种方便的编程工具。ASP的工作模式是:ASP脚本是经过Web服务器解析之后, 向浏览器返回数据。所有的脚本都在服务器端执行, 包括所有嵌在普通HTML中的脚本程序。当程序执行完毕后, 服务器仅将执行的结果返回给客户浏览器, 这样减轻了客户端浏览器的负担, 大大提高了交互的速度。与HTML相比, ASP具有如下优势:脚本无须编译、运行与浏览器无关、面向对象性、与Active X script兼容等。
2 ASP网站存在的安全隐患
2.1 Access数据库存在的安全隐患
2.1.1 数据库的存储隐患
在ASP+Access网站中, 由于在设计过程中, 经常会把数据库保存在当前文件夹下, 或是保存在一个DATA或Database的文件夹下, 扩展名为:“.mdb”文件, 所以如果利用猜测或搜索的方式都可以对数据库文件进行下载。只要数据库被下载, 网站的所有信息都会被泄露。
2.1.2 管理员用户引发的安全漏洞
早期的Access数据库系统有一个“管理员”的缺省用户, 由于微软将“管理员”账户的用户ID号设成了一个固定值, 黑客可以用“管理员”的身份和密码登录数据库, 也就可以拥有对数据库系统的所有权利。
2.2 ASP程序设计中的安全隐患
2.2.1 源码安全性
由于ASP程序采用非编译性语言, 大大降低了程序源代码的安全性。如果黑客侵入站点, 就可以获得ASP源代码;同时对于租用服务器的用户, 因个别服务器出租商的职业道德问题, 也会造成ASP应用程序源代码泄露。有的软件甚至可以直接通过浏览器获取ASP代码, 并可直接下载到.TEX文件下。因此, 在使用ASP进行程序设计时, 应该特别注意源码的安全性。
2.2.2 程序设计的漏洞
由于Asp代码利用表单 (form) 实现与用户交互的功能, 而相应的内容会反映在浏览器的地址栏中, 如果不采用适当的安全措施, 只要记下这些内容, 就可以绕过验证直接进入某一页面。例如在浏览器中敲入“pages.Asp?x=2”, 即可不经过表单页面直接进入满足“x=2”条件的页面。因此, 在设计中, 必须采取特殊措施来避免此类问题的产生。
3 ASP网站安全防范策略
3.1 Access数据库
3.1.1 在数据库中添加一行错误的ASP代码
管理员可以先建立一个隐藏表。表内只有一列, 在表中只插入错误的一句ASP代码, 当对方打开数据库的页面时只会出现ASP脚本的出错信息, 而不会下载数据库了。这些手段都可以有效防止Access文件被下载。
3.1.2 使用ODBC数据源
在ASP程序设计中, 如果有条件, 应尽量使用ODBC数据源, 不要把数据库名写在程序中, 这样可以避免数据库随ASP源代码的失密而一同失密。例如:
可见, 即使数据库名字起的再怪异, 隐藏的目录再深, Asp源代码失密后, 数据库也很容易被下载下来。如果使用ODBC数据源, 就不会存在这样的问题了:Conn.Open“ODBC-DSN名”3.1.3备份数据库
及时备份数据文件是好的习惯, 这就防止了数据的意外丢失而造成的损失, 确保数据库的安全性和不间断性。网站管理员可以手工备份, 也可以采用定时备份的方式备份数据。
3.2 ASP程序设计中的防范策略
3.2.1 对ASP页面加密
为有效地防止ASP源代码泄露, 可以对ASP页面进行加密。我们可以采用两种方法对ASP页面进行加密。一是使用组件技术将编程逻辑封装入DLL之中;二是使用微软的Script Encoder对ASP页面进行加密。使用组件技术存在的主要问题是每段代码均需组件化, 操作比较繁琐, 工作量较大;而使用Encoder对ASP页面进行加密, 操作简单, 收效良好。
3.2.2 使用MD5加密对用户加密
在用户登录时, 经常使用一个验证码的形式, 把用户密码进行加密。MD5将整个密码当作文本信息, 通过其不可逆的字符串变量算法, 产生了这个唯一的MD5信息摘要。MD5是单向加密的, 也就是说加密后产生的字符串是不可能反过来被解密掉, 这样就可以防止非法用户对我们的数据进行访问和修改了。
3.2.3 检验用户, 防止非法访问
为防止未经注册的用户绕过注册界面直接进入应用系统, 我们采用Session对象进行注册验证, 如果用户没有登录, 就拒绝其进行访问, 从而杜绝黑客的非法操作。
3.2.4 检验敏感字符或字符串
为有效防止SQL注入, 应对一些SQL命令或关键字进行处理, 一旦检测到敏感字符串, 就把它们屏蔽, 并中止针对数据库的操作。
参考文献
[1]邹天思, 孙明丽.ASP开发技术大全[M].北京:人民邮电出版社, 2007.
关于asp网站安全设置的一点思考 第2篇
【关键字】asp,网站,安全,维护
【中图分类号】IP393.08 【文献标识码】A 【文章编号】1672-5158(2013)03-0171-01
asp作为一种快速开发的脚本语言,在高级程序开发语言.net,php,jsp盛行的今天,其易用性和开发便捷性还是得到很多人的认同,目前国内大部分网站还是采用asp程序代码开发,由于asp是早期语言,程序的逻辑性和严密性不是很好,再加上难封装等客观原因,其语言的安全性相比.net、php、jsp而言要差些,但是只要我们做好一些必要的安全工作,asp网站一样能够很安全、稳定的运行,有些使用ASP语言的网站甚至比php、jsp等程序开发出来的网站更安全稳定,而且有易于管理和维护的特点。
1.首先我们先谈数据库安全,数据库的安全关系到整个网站的安全,asp网站常搭配两种数据库:一种是access,一种是sql,access出现的时间比sql要早,虽然access具备数据库文件小、使用容易、在虚拟主机上可以直接运行等优点,但是其安全性和性能比sql要差,容易被下载,但只要做好以下几方面,asp+access的网站一样可以很安全、稳定的运行,首先是对access数据库做防下载处理,通常处理方法如下:1.可以在数据库文件名前加#符号、或者在数据库文件名当中加入#符号,然后修改asp网站中的数据库连接文件(比如conn.asp,data.asp,sql.asp等等,也有的在index.asp主文件中)中的数据库连接地址,但数据库文件名应保持一致。还可以在数据库文件字串中加入些标点符号,比如,;号等,这是由于http协议会把这些符号解析成”%”号,所以即使有人看到你数据库的地址,也很难准确判断数据库文件地址进而下载数据库文件!
2.可以对数据库进行加密,具体操作如下,选择access菜单选项:工具——安全——加密/解密数据库选项,选择你所需加密的数据库名(比如:data.mdb),点确定,此时会出现另存为窗口,点击确定,这项操作能给数据库文件内容加上系统编码,防止无关人员随意查看数据库内容。接下来则是加密操作,打开相应的数据库文件,在窗口右下角选择框里选择独占方式,然后选择access菜单,依次点击上方的工具——安全——设置数据库密码选项,接着输入密码,这样数据库密码就设好了,给数据库安全多一重保障,但设置密码后切记在数据库连接文件中加上uid=***;pwd=***语句,建立数据库和网站文件的连接,这样网页才能正常访问!4.可以把数据库放到其它目录下,然后把数据库连接的相应地址改掉,数据库连接语句最好写成数据源ODBC连接格式,不过这种方法不适合虚拟主机用户使用。Sql数据库相对安全系数要高些,不过也要设置好密码、使用用户、文件权限等,还要删除掉一些危险的、使用不到的存储过程,比如cmdshell等,总的原则是密码越长越复杂越好,用户越低权限越好,使用文件权限也越低越好!
3.使用asp网站加密工具,对网站文件和数据库文件加密!
当然,iis作为运行asp程序的一项重要工具,其安全问题也应高度重视,具体可做一下操作,做好这些操作后,IIS的安全性将会大大提升,具体如下:
(1)给予IIS站点属性中的主目录以读取权限,执行选择纯脚本。
(2)在应用程序配置的调试选项卡中,不启用asp的服务端和客户端脚本调试,不向客户端发送详细的ASP错误消息,防止泄漏程序文件和数据库详细信息。此外,在应用程序配置的选项中记得勾选启用父路径。
(3)在控制面板——计算机管理——用户名和密码中新建一用户,隶属于guests组,把这个用户名对应的密码设置复杂点,然后在网站属性的身份验证方法中查看匿名访问用户名,选择刚才自己新建的用户,给自己新建的用户以最低权限,建议只给予读取和写入权限。
(4)网站的上传目录(比如images,softs)等文件和数据库文件(mdb,sql)等本身不需要运行asp程序,因此要把执行权限设置成无,给它们以基本的读取和写入权限即可。
(5)及时升级iis和打最新的微软操作系统补丁、数据库也要及时升级。
(6)可以对网站文件里的文件进行加密或进行防篡改处理。
(7)在主目录——配置——应用程序拓展选项中只保留asp、asa选项。
此外,关于服务器系统的安全维护有这样一句行话:“分配最小的权限+提供最少的服务=保障最大的安全”。操作系统的安全也是很重要的,试想如果操作系统有很多漏洞,黑客通过这些漏洞攻进操作系统,那岂不是网站文件都保不住了?所以正确配置好服务器系统和打好服务器补丁,及时升级杀毒软件,装网络防火墙都是必不可少的!除此之外,服务器的文件和用户名权限设置也是很重要的,直接关系到服务器和网站文件的安全,系统安全如果做得好,黑客很难攻入,反之黑客可以轻松操控整台服务器。文件和用户名权限设置步骤如下:
(8)禁用并给guest账户一个非常复杂的密码。
(9)删除或限制一些不必要的帐户使用,因为有些不必要的帐户给黑客入侵服务器提供了便利。
(10)把系统默认管理员帐户administrator改名,并匹配其很复杂的密码。
(11)新建一伪装用户,名称取为administrator(系统管理员账户),为其也匹配很复杂的密码。并分配给这个账户以最低的权限,这样黑客入侵的话就会白忙活一阵子,而且管理员也可以有足够时间来锁定黑客的相关信息。(即使黑客入侵成功,取得的也只是最低权限,控制不了服务器)。
(12)不要把任何共享文件的用户分配给系统用户“everyone”组。
4. 如果管理者不想让操作系统显示上次登录的用户名可以做如下操作:打开注册表“Software\Microsoft\Windows T\CurrentVersion\Winlogon\Dont-DisplayLastUserName”,把REG_SZ的键值改成1。
删除和禁止使用某些危险的asp组件也同样重要(这些组件一般情况下用不到,如需用重新运行此项组件即可),事实上,asp木马多通过Shell.Application、WScript.Shell、WScript.Network组件来运行,以下是具体的删除方法:(具体步骤是在开始运行命令执行中操作)
(1)删除WScript.Shell组件命令:regsvr32 WSHom.ocx /u(2)删除WScript.Network组件命令:regsvr32 wshom.ocx /u(3)禁止使用Shell.Application组件命令:cacls C:\WINNT\system32\
shell32.dll /e /d guests
(4)禁止guest用户使用shell32.dll组件命令:cacls C:\WINNT\
system32\Cmd.exe /e /d guests
最后是asp文件和数据安全,上文提到可以对网站文件里的文件进行加密或进行防篡改处理,还可以通过vb将asp代码封装成dll组件,还要对asp代码进行防注入过滤,过滤html语句,过滤网页间的传值,使用后台登录验证,防session猜解,密码md5加密(对md5加密的密码最好设置成14位以上,防止被破解),使用微软提供的URLScan Tool过滤非法url地址等,鉴于此块篇幅很大,此文不做一一详述,有兴趣的读者可通过上网或书籍查询相关内容。此外,定期备份网站文件和数据库(如果是sql数据库,笔者建议可以异地备份)至关重要,一旦网站出现问题可及时还原原始文件,保网站的持续运行。
参考文献:
[1]李世川. 浅析基于ASP的网站安全问题[J]. 科技资讯,2010.09[2]张帆. ASP网站的安全管理及措施[J]. 计算机安全,2008.08
[3]刘聪林.论基于ASP网站的安全管理[J]. 德州学院学报,2011.08
[4]庄小叶; 蒋西明; 李轲.基于ASP的网站安全性研究[J].山东纺织经济,2012.09
[5]张彩华. 浅析ASP网站中SQL注入的防范措施[J]. 黑龙江科技信息,2012.04
[6]贾玲. ASP网站安全问题探析 [J]. 濮阳职业技术学院学报,2009.05
[7]朱根良. 谈ASP网站的安全管理[J]. 科技信息,2011.01
[8]李世川. 浅析基于ASP的网站安全问题[J]. 科技资讯,2010.05
[9]尹玉霞. 基于ASP网站的安全性研究与实现[J]. 硅谷,2012.02
基于ASP的网站安全研究 第3篇
ASP (Application Se rvice Provide r) 应用软件租赁服务提供者即是指通过网络以租赁方式提供应用软件服务的从业者, 是指从业者以应用软件为主体, 通过网络一对多的传递服务。这种以服务为主的交易模式促使企业可藉由租赁的方式, 以更符合成本效益的方式拥有软件的使用权, 并且也能因为从业者集中式的管理而大幅降低企业维护的成本。ASP内含于IIS中, 是一种WEB Se rve r的开发环境。通过HTML页面嵌入ASP脚本语言, 可以产生和执行动态的、交互的、高性能的WEB应用程序。ASP采用脚本语言Vbs cript作为自己的开发语言。ASP是一种Se rve r脚本语言, 它只能在Se rve r环境下才可以正常运行, 而Server环境的配置要求也很简单, 只要在System下添加IIS组件就可以。ASP客户端, 只需要一个普通的浏览器就可以。
1.1 ASP服务平台的安全访问
安全访问ASP服务平台, 前提是保证数据的即时性。安全的ASP服务应该遵循超文本传输协议, 接受网络管理员定义的网络安全数据。区分并详细划分不同用户对ASP网络的操作权限, 这样才能保证授权的合法用户的信息在终端和Server之间建立通信。物理层访问分离筛查, 建立非授权用户操作或可疑数据与ASP服务平台的隔离, 建立分割虚拟下级服务网络用来控制可疑访问等非法操作, 或者应用防火墙软件等其他技术, 鉴别访问数据、数据源路径、用户权限、用户身份等安全策略实行危险域之间的访问控制, 规定用户访问授权范围内的网络资源并拒绝非法用户登陆操作, 对非法攻击进行记录、监督并提供警报。
1.2 应用系统的安全策略
制定有效的安全策略能提高系统的安全性和应用系统的安全性, 对非法用户的恶意操作我们可以运用以下安全防护措施:及时补救系统漏洞。对于已发现的系统漏洞我们要及时分析漏洞起因并对漏洞的危害性进行评估, 管理员进行正确配置安全策略执行脚本, 应第一时间用相应补丁对系统进行补救, 将损失减到最低, 要定期对数据库进行扫描, 发现安全漏洞和错误的脚本设置。严格鉴别登陆用户的合法身份, 对系统进行必要的安全配置, 关闭闲置的系统服务及端口, 对系统核心数据的访问权限要严格控制, 设置访问口令并定期修改, 对用户的登陆请求要进行扫描。闲置非授权用户访问。有针对性的对ASP网络服务进行安全策略配置, 启用日志对访问信息记录, 提高系统的安全性。
2 操作系统安全策略
2.1 系统补丁更新
Se rve r系统和里面所有软件都是购买的正版软件, 避免盗版软件带来的麻烦。操作系统的漏洞或者缺陷往往是给攻击者打开的方便之门, 为了彻底的解决这个问题, 除安装正版软件外, 利用管理员用户每天及时查询、下载和安装安全补丁, 堵住漏洞。微软安全补丁有服务器包和热补丁两种。服务器包已经通过了回归测试, 能够保证安全安装。每一个服务器包都包含着在此之前的安全补丁, 安装在Server前, 仔细阅读自带的Readme文件并检查已经发现的问题, 在测试机上先安装一遍, 先进行实验性安装。安装热补丁时, 都仔细考虑每一个补丁后, 再确定立即安装。管理员经常使用HFNet Chk工具来扫描Serve r, 确保Se rve r安装Window s微软操作系统的最新补丁。
2.2 系统文件加固
Window s 2000 s e rve r支持的文件系统种类很多, 例如NTFS文件系统支持包括文件和目录在内的访问权限设置。在NTFS系统中, 文件和目录表示为项, 每个创建者都是这个文件系统的所有者, 每个所有者都有项。可以方便的设置其他用户成为该项的所有者, 并可修改控制列表或者授权其他用户修改访问列表。项可以是单一个人用户或者一个工作组。Windows 2000 server系统是针对网络管理类开发的操作系统, 可以将网络资源本地化操作, 这里指的项可以是本地用户, 当然也可能是域用户或域工作组。每一个文件都是一组属性, 其文件中的内容数据就是这组属性的其中一个。这也是NTFS系统的特征。
3 数据库安全策略
3.1 数据库配置
数据库的安全配置并不复杂, 但是没有引起数据库Server管理员的足够重视。简单的数据库扫描工具就可以扫描出大量的SA空密码, 数据库安全风险非常大。
1) 采用NTFS文件分区。NTFS文件分区可以充分利用Window s系统中NTFS文件分区的安全性。NTFS文件系统可以将每个用户允许读写的文件限制在磁盘目录或磁盘目录下的任何一个文件夹。
2) 选择安全的验证模式。SQLSe rve r提供两种不同概念的验证模式, 分别是:Windows验证模式和混合验证模式。这是两种不同级别的安全验证模式。Windows验证模式主要是以System的帐号验证策略作为基础的, 其安全性依赖于System的安全性, 所以要保证采用Window s验证模式的数据库的安全性, 前提条件必须也要保证Window s的帐户策略有足够的安全。而混合验证模式则是以SQLSe rve r自身的验证机制为基础的, 其安全性并不能得到很好的保证。所以我强烈推荐大家使用Windows验证模式。操作步骤:a.打开SQLServer企业管理器, b.选择实例, 然后单击鼠标右键, 选择“属性”, c.选择“安全性”标签项, d.在“安全性”区域中, 用户可以选择用Windows验证模式还是混合验证模式, e.在下方的“启动服务帐户”区域, 可以选择是采用系统帐户还是用户自己指定特定的帐户来启动SQL服务。
3.2 数据库备份
基于ASP的气象信息网站系统 第4篇
辽宁气象网站系统的设计是基于面向应用的软件设计思想和模块化设计方法,包括数据库连接模块、网站栏目管理模块、网站信息管理模块、网站浏览模块、气象信息产品处理和浏览模块。在信息归口管理的基础上,为职能部门提供了统一的信息管理平台。同时,辽宁气象网也成为公众获得气象信息,了解辽宁气象人的一个新的媒介。
2 系统分析与设计
2.1 系统体系结构
网站系统利用ASP开发技术,根据模块化设计方法,采用了基于Browser/Server模式的三层体系架构(如图1所示),即数据库服务层(DataBase Service)、功能层(Web Service)和表示层(Browser)。网站服务器操作系统为Windows2003 Server,Web服务器为IIS6.0,后台数据库采用MS SQL Server 2000。网站客户端采用VBscript、Javascript,服务器端采用ASP技术。
2.2 系统模块设计
整个系统大体分为两部分,一部分是网站信息发布管理系统,另一部分是气象信息产品处理系统。网站信息发布管理系统主要由两个模块构成,即后台管理模块和前台浏览模块。如图2所示。
3 关键技术及系统实现
3.1 ADO访问数据库
ADO是ActiveX Data Object(ActiveX数据对象)的英文缩写,它是Microsoft开发的数据库访问组件。在数据库的应用中,使用ADO编写的应用程序可以存取在Internet上任何地方的资源。ADO操作流程如下:
(1) 创建连接,连接到数据源。
(2) 指定访问数据源命令,同时指定变量参数。
(3) 执行命令,即SQL语句。
(4) 命令使数据按表中的行的形式返回,并将这些行存储于缓存中。
(5) 可以通过修改缓存行的内容来更新数据源。
(6) 提供常规方法检测错误。
3.2 系统维护
系统对不同级别的管理员分别赋予不同的权限,登录后台管理系统通过ASP的Session对象记录的管理员信息,根据记录的信息标识不同的管理权限。不同的管理员只能对其所辖本部门的信息或产品具有修改权限。管理员对系统的维护主要是对数据库数据的处理,其操作通过ADO组件对数据库的访问来实现。
3.3 新闻浏览与产品显示
新闻浏览页面的实现主要分5个步骤:①是根据新闻id从数据库中获取新闻内容;②是列出所有的图片和附件,然后按顺序显示新闻图片、内容和附件;③是更新新闻的浏览次数;④是显示该条新闻的所有评论;⑤是显示新闻评论的输入表单。网站的新闻按时间采用排倒序的方式,将最新的新闻列到顶端。
最新的气象信息提取、入库后,并生成临时数据文本。在网站上,产品处理的核心代码如下所示:
Set fso = Server.CreateObject("Scripting.FileSystemObject")
FilePath = Server.MapPath(mm)
Set fout = fso.OpenTextFile(FilePath)
ALLStr=fout.ReadAll
3.4 系统安全
使用ASP和IIS结合在一起提供验证和授权服务,来保障系统的安全。充分运用虚拟目录机制。可以让一个文件夹在web服务和本地使用不同的名字,从而保护服务器的文件结构。
网站各级管理员的口令都采用了MD5算法进行加密,由于MD5是不可逆的,不能利用MD5算法来解密加密后的数据。
由于网站采用B/S架构,对于现在非常流行的SQL注入攻击,采取了过滤一些SQL命令或关键字屏蔽,并对网页间传递的纯数字信息进行判断,不是数字的就发出警告,并停止页面浏览。
4 结束语
ASP技术是一种成熟的网络开发技术,提供了一个全方位的Web开发平台。基于ASP的气象信息网站系统具有执行效率高、易于维护、安全性能好等特点,重要的是它使辽宁气象网站的管理、维护工作提高到新的水平。同时,也为今后的升级、改版工作奠定了坚实的基础。
参考文献
[1]周天思,孙明丽,庞娅娟.ASP开发技术大全[M].人民邮电出版社,2007.
ASP网站安全问题 第5篇
ASP.NET作为一个快速网站开发平台凭借其完善且强大的网站开发技术, 成为了目前国内应用最为广泛的语言之一, 也成为了很多动态网站开发者的首选。然而, 质疑ASP.NET安全性、稳定性的言论层出不穷, 运行于windows平台的ASP.NET网站不是因为安全度低, 而是开发者还没有系统地掌握ASP.NET安全技术。
2认证与授权
2.1 Form认证
对于Internet上不允许匿名访问的网站资源, 我们必须验证用户的身份, 基于表单的身份认证是ASP.NET中使用最多和最灵活的一种验证方式, 验证通过的用户便可以访问网站的资源, 我们通常的做法:
(1) 首先修改网站根目录中Web.Confi g文件的authentication节:
说明:不采用默认Cookie名称的方式, 不给非法用户获得自动保存的登录凭据cookie的机会;缩短cookie的生存时间, 以减少非法用户获取cookie骗取应用程序的时间。
(2) 其次在网站根目录中Web.Confi g文件的connection Strings节中创建数据库的连接字符串:
说明:不使用SQL默认的sa账号;一定要使用强密码, 以此保证数据库的安全。
(3) 用户登录页面 (假设为Login.aspx) 进行身份验证的部分关键代码:
(4) 用户登录后的凭据会以Cookie的形式进行保存, 当我们同时访问其他网站的时候, 恶意网站便可以截取Cookie凭据, 以合法用户的身份向我们的网站服务器发送请求, 合法用户的资料将会受到极大的威胁, 这就是CSRF跨站请求伪造攻击。为了验证用户的合法性, 应该确保发送验证请求的表单是由我们的服务器发出的, 常用的解决方法为:给用户提供一个输入验证码的文本框, 通过每次与我们服务器表单产生的随机验证码比较, 做到CSRF跨站请求伪造攻击防范。
2.2授权
授权是对认证通过的用户进行的权限限制, 类似windows中的用户组的概念, 我们称之为角色, 不同角色下的用户可以访问不同的网站资源。我们假设网站中有两种角色:Administrator和Registusers, 只有管理员 (Administrator) 才可以访问Admin文件夹中的资源, 管理员和注册用户 (Registusers) 都可以访问Users文件夹中的资源。我们的做法是:
(1) 在网站中建立两个文件夹, Admin和Users, 并分别建立或放置基于角色权限访问的页面或文件。
(2) 在Admin文件夹中, 添加Web.confi g文件, 并在其<authorization>节中, 添加如下参考代码:
(3) 为了便于检验验证和授权的效果, 我们可以提前通过注册页面, 录入两条分别属于管理员角色和注册用户角色的用户信息, 密码写入数据表users之前一定要通过MD5加密。
(5) 在Global.asax文件的Application_Authenticate Request事件中, 将当前用户的标识与当前用户登录验证票据中保存的用户角色进行匹配:
3错误信息处理与信息加密
3.1错误信息处理
网站运行过程中, 出现未处理的错误是常有的事, 如果这些错误信息被恶意用户获得, 经过一定的分析处理, 网站中的重要程序代码信息将有可能泄露, 这将成为恶意用户攻击网站的开始。通常可以采纳以下几种策略:
(1) 配置网站根目录中Web.Confi g文件的custom Errors节, 如:
(2) 在程序编码过程中, 将可能出现错误的代码块放置在try…catch…fi nally语句中, 以捕获程序运行过程中出现的异常, fi nally结构中通常放置关闭数据库连接等操作语句。
(3) 在Global.asax全局应用程序类文件的Application_Error事件中, 判断Request.Is Local的值, 对本地用户 (值为true) , 通过Server.Get Last Error () 获得程序运行的错误信息;对远程用户 (值为false) , 自定义提示信息。分别给Application变量进行赋值。
任何一个html页都有一个_viewsate隐藏域控件, 用于保存网页提交后的原有控件的状态。虽然viewstate中的数据, 已经经过了base64编码, 但是恶意用户可以很容易的对编码后的数据进行解码。加密viewstate数据成为了其中之一的解决方案, 在网站的Web.confi g文件的<system.web>节中, 添加如下参考代码:
<pages view State Encryption Mode="Alwa ys"enable View State Mac="true"></pages>
<!—加密网站中的所有页面的viewstate数据-->
<machine Key validation="3DES"/><!—将加密方法改为3DES-->
3.3加密Web.config配置文件
在web.confi g配置文件中保存有网站配置的一些敏感性数据, 将其进行加密是一种不错的安全解决方式。基于可以读取加密信息的考虑, 需要做两项准备工作:
(1) 通过System.Security.Principal.Windows Identity.Get Current () .Name语句, 来读取应用程序标识。
(2) 通过aspnet_regiis–pa RSA密钥容器的名称 (通常为:Net Framework Confi guration Key) 应用程序标识, 使RSA密钥容器具有对加密信息读取的权限。
最后便可以通过aspnet_regiis–pe"配置文件中的节名"-app"应用程序标识", 加密指定配置节中的数据。
4资源权限设置与运行环境保障
4.1资源权限设置
虽然在Web.confi g文件中可以定义基于角色的访问权限, 但是如果在IIS中, 允许用户有浏览文件夹的访问权限, 我们网站的数据安全性依然得不到保障, 因此在IIS中创建虚拟目录时, 采用IIS对文件夹的默认访问权限, 无疑是一种不错的安全方案, 千万不要放开文件夹的浏览、文件的执行权限等等。另外, 对于采用Form验证方式的网站来说, 用户的匿名访问权限一定要放开, 因为基于用户名和密码的身份验证是在登陆页面中进行的, 不启用匿名访问, 用户连登陆页面也将无法访问。
4.2运行环境保障
作为Web服务器的计算机, 不能轻易让用户进入, 是保障网站安全性的基础。常用的做法有:使用NTFS文件系统比FAT32安全性高的多;关闭非需要的安全性隐患端口和未用的服务;安装杀毒软件和防火墙, 做到及时软件升级和系统补丁更新;使用不宜破解的计算机强密码, 防止非法用户各种尝试性登陆;经常进行网站备份和数据库备份等等。
5结论
网站安全性的技术是网站安全的保障之一, 最重要的是, 我们一定要提高网站安全防范意识, 通过在网站中设计用户的操作日志, 来时时监控网站的运行状态, 一旦发现非法用户进入或各种操作异常, 需要及时果断采取补救措施, 保证网站稳定、高效的运行下去。
参考文献
[1]赵强, 张红中.“基于ASP.NET的网站系统安全性设计与实现”[J].计算机应用, 2008 (12) .
[2]秦剑波、雷明彬.“ASP.NET网站设计安全性探讨”[J].商业视角, 2007 (11) .
[3]Jesse.“开发ASP.NET MVC应用程序时值得注意的安全问题”http://jesse2013.cnblogs.com/, 2013 (10) .
ASP网站安全问题 第6篇
1 ASP+Access网站建设方案选择
目前, 比较常用的WEB服务器软件有IIS和Apache, IIS支持ASP, 运行在Windows环境下, 普及性好;Apache支持PHP、JSP、CGI, 可运行于多种平台。在网页编程语言方面, ASP技术简单易学, 适合开发中小型网站;PHP技术开源, 适于对版权要求高的网站;JSP技术安全性高, 开发成本也较大, 适于开发一些如银行金融系统等大型电子商务网站。
ASP是微软推出的一种基于脚本的网络编程语言, 可以创建组合HTML页面、脚本命令和Active X组件的动态、交互式WEB应用程序, 代码易学, 编程环境简单, 开发周期短, 数据库存取方便。Access作为微软Office软件包的组成部分, 普及性强, 界面友好, 操作简单。使用ASP+Access技术建设的网站移植性极强, 移植时几乎不需任何附加操作即可实现, 对于租用虚拟空间的中小型网站来说, 是首选的建设方案。
2 ASP的安全性策略
ASP脚本是一系列按特定语法 (目前支持VBscript和JScript两种脚本语言) 编写的, 与标准HTML页面混合在一起的脚本所构成的文本格式的文件。基于ASP技术的网站的工作方式可以描述为:当客户端用户使用WEB浏览器通过INTERNET来访问基于ASP脚本的应用时, WEB浏览器将向WEB服务器发出HTTP请求, WEB服务器分析、判断出该请求是ASP脚本的应用后, 自动通过ISAPI接口调用ASP脚本的解释运行引擎 (ASP.DLL) 。ASP.DLL将从文件系统或内部缓冲区获取指定的ASP脚本文件, 接着就进行语法分析并解释执行, 处理结果将形成HTML格式的内容, 通过WEB服务器“原路”返回给WEB浏览器, 由WEB浏览器在客户端形成最终的结果呈现。
由此可见, ASP运行在服务器端, 从浏览器上所看到的网页内容是在服务器上经过解释生成后传送过来的, 浏览器不用负责对脚本进行处理, 也无法得到支持其页面内容的脚本命令, 并且, 在服务器端没有实际的页面存在和出现, 任何网页都是根据用户的需求来动态的实时生成和运行的, 在用户访问结束后就自动消除。这样, 既维护了开发人员的版权, 系统的访问和运行安全性也可以得到保障。
另外, IIS支持虚拟目录, 在服务器端建立虚拟目录可以隐藏有关站点目录结构的重要信息。首先, 在浏览器中, 客户通过选择“查看源代码”, 就能获取页面的文件路径信息, 如果在WEB页中使用物理路径, 将暴露有关站点目录的重要信息, 导致系统受到攻击。其次, 只要两台机器具有相同的虚拟目录, 就可以在不对页面代码做任何改动的情况下, 将WEB页面从一台机器上移到另一台机器。还有, 当WEB页面放置于虚拟目录下后, 可以对目录设置不同的属性, 如:Read、Excute、Script。Read表示将目录内容从IIS传递到浏览器。Excute可以使在该目录内执行可执行的文件。当需要使用ASP时, 就必须将存放.asp文件的目录设置为“Ex-cute (执行) ”。建议在设置WEB站点时, 将HTML文件同ASP文件分开放置在不同的目录下, 然后将HTML子目录设置为“读”, 将ASP子目录设置为“执行”, 这样不仅方便了对WEB的管理, 而且最重要的提高了ASP程序的安全性, 防止了程序内容被客户或黑客所访问。
3 ASP+Access的安全隐患及防范措施
ASP+Access解决方案的安全隐患主要来源于脚本安全隐患、数据库安全隐患、权限管理隐患和木马漏洞隐患等方面。
3.1 脚本安全隐患及处理方法
3.1.1 源代码的安全
ASP采用明文方式编写, 是解释性语言, 源代码的安全性明显低于编译语言, 非法用户进入站点就可以获得源代码, 甚至获取数据库中的所有信息 (包括系统机密信息) , 还可能篡改库中信息, 造成系统严重损坏;有些ASP编辑工具如Ultra Edit在创建或修改一个ASP文件时, 会自动生成一个以bak为扩展名的备份文件, 此文件若被下载, 同样会造成ASP源文件的泄露;对于租用服务器的用户, 由于管理问题, 也可以造成源代码泄露;有些软件甚至可以直接通过浏览器下载ASP代码。
为有效防止ASP源代码的泄露, 可以对源文件进行加密, 主要加密方法有两种:
1) 采用“脚本最小化”原则, 将重要的脚本部分使用组件技术将编程逻辑封装在DLL文件中;
2) 使用微软提供的Script Encode对ASP页面进行加密。
使用组件技术需要对每段代码进行组件化, 工作量较大;使用Script Encode只加密ASP代码, Html仍有很好的编辑性, 可以使用网页编辑工具继续修改完善, 操作比较简单, 可以批量加密, 实际操作中, 推荐使用该种方法。
此外, 上传程序之前要仔细检查, 删除不必要的文档, 特别是对以BAK为后缀的文件要格外小心。
3.1.2 用户身份验证
ASP代码利用表单实现与用户的交互, 相应的请求会反映在浏览器的地址栏中, 如果不做安全设置, 对地址栏中的内容稍加处理就会绕过验证直接进入页面。例如:若在页面设计时未作验证, 浏览器中输入“/page.asp?x=1”即可进入满足“x=1”的页面。所以, 必须采取措施避免此类事故的发生。
为防止未经注册的用户绕过注册页面直接进入系统, ASP提供了Session对象, 用以存储特定用户的Session信息, 它在请求的整个生命周期中都有效, 即使用户从一个WEB页面调到另一个WEB页面, 该信息依然存在。利用Session对象记录用户的访问路径, 进而实现页面访问控制。相关的程序代码如下:
这样进入页面时, 用户必须已经输入正确的用户名及密码, 否则自动跳转到login.asp页面, 要求用户输入用户名和密码。
3.1.3 特殊字符攻击
输入框是黑客利用的一个目标, 他们可以通过输入脚本语言等对用户客户端造成损坏, 如果该输入框涉及数据查询, 他们会利用特殊查询语句, 得到更多的数据库数据, 甚至表的全部, 因此必须对输入框进行过滤。
例如上述密码验证, 如果没有对接受的变量进行过滤直接带入数据库判断查询时, 会造成SQL语句的逻辑问题。例如:
若根据SQL语句构造一个特殊的用户名和密码, 如aa'or'1'='1, SQL语句就变成了select*from user where username='&aa'or'1'=&''and password=''&password&'', 由于or逻辑判断中只要有一个条件成立, 结果恒成立, 所以返回值为ture, 就可以骗过系统而进入。
解决方案是:在程序中过滤掉”’”和”or”字符, 代码如下:
3.2 数据库安全
ASP+Access网站几乎全部通过数据库进行维护, 数据库里面还包含管理员账号信息和用户信息, 所以, 数据库的安全至关重要。数据库安全隐患重要包括可能被下载的隐患和可能被解密的隐患。
3.2.1 Access数据库被下载的隐患
在教学中, 我们建议学生对文件夹和文件的命名采用“见文知意”的原则, 网站目录结构一般使用约定的常见目录名称, 如图片放在image文件夹下, 数据放在database文件夹下, 在本地练习的时候, 层次清晰, 方便管理, 但这种命名规则, 在网络环境下则存在致命隐患, 如果非法入侵者猜到Access数据库的存储路径和数据库名, 则该数据库就可以被下载到本地, 这个网站的数据将暴露。
防范数据库被下载的方法主要有:
1) 数据库命名尽量采用复杂的无意义名字, 并放在多层目录之下, 这样猜到数据库的几率就会降低。
2) 使用ODBC数据源
在ASP程序设计中, 不要把数据库名直接写在程序中, 否则, 再深的目录, 数据库名也将随ASP源代码的失密而一同失密。使用ODBC数据源可以规避这一问题, 例如:
可以先设置数据源名称, 再进行连接打开:
conn.open“数据库名称”
3) 伪装数据库文件
(1) 把扩展名改为asp或asa
扩展名改变后, 不能从浏览器直接下载, 但是还可以使用迅雷或快车等软件下载, 下载后扩展名改回mdb还可以正常打开。
可以先在MDB文件中建一个临时表, 在表中建一个字段, 字段名任意命名, 字段中填入:<%=*********%>, 随便输入一串不正确的Asp语句, 把扩展名改成.ASP。原理是把扩展名改成.ASP后, 在IE中输入数据库文件名下载的时候, 遇到了<%%>服务器就去解释中间的代码, 所以数据库不会正确的被下载。
数据库名前加上一个#号
一般来说, 浏览器在下载的时候只能识别#号前名的部分, 对于后面的自动去掉, 如访问http://news.lwvc.edu.cn/date/#y3a4.mdb时会自动转到http://news.lwvc.edu.cn/date/index.html, 但把#换成它的编译码%23就能下载, 同样, 中间加空格的文件名浏览器自动编译成%20也能够下载。如果直接使用#+空格的编译码%23%20.mdb作为数据库名字, 使用迅雷和普通的下载工具就不能下载了。
此外, #号还可以防止跨库查询, 当有多个MDB文件放在同一个目录下时, 如果猜到管理员MDB文件的位置并且从另一个系统中得到SQL注入漏洞的同时, 可以采用ACCESS跨库查询的方法取得管理员库中的记录, 如果在库名前面加上#号, 提交sql查询语句:select*from#y3a4.asp.admin时, 因为#在SQL语法中有表示日期的作用, 系统会提示出错, 语法出错也就不会去执行查询条件了。
4) 数据库放在IIS目录之外
如果使用的是托管主机, 直接把数据库放到IIS以外的目录下, 就真正无法下载了, 不过这种方法不适用于使用虚拟空间的用户。
3.2.2 Access数据库的解密隐患
1) 数据库编码
在Access中以“独占”方式打开数据库文件, 执行“工具安全加密/解密数据库”, 输入密码, 保存。对数据库文件加以编码后, 可以防止他人使用别的工具来查看数据库文件的内容。
2) 数据库加密
以"独占"方式打开经过编码了的数据库文件, 执行“工具安全设置数据库密码”, 输入密码。
加密后要修改数据库连接的参数, 如:
Param="driver={microsoft access driver (*.mdb) };pwd=数据库密码;dbq=数据库路径"
由于Access数据库的加密机制非常简单, 即使数据库设置了密码, 解密也很容易。所以, 无论是否设置了数据库密码, 只要数据库被下载, 其信息还是没有任何安全性可言。
3.2.3 使用MD5加密数据库
1) 下载md5.asp文件;
2) 在要用MD5加密算法的页面先加载MD5的文件:
3) 在要用的地方使用MD5的函数即可, 比如:
这样一来, 数据库就算被下载, 破解也很复杂, 由于采用了session认证防止了cookie伪造, 安全系数就加强了很多。
对于使用托管主机的用户来说, 还要管理好Windows的权限, 设置严格的账号权限, 对WEB服务器设置合理的运行权限, 保护Global.asa文件的安全等。为解决木马漏洞, 在使用论坛程序时要适时更新, 打上补丁;尽量避免安装第三方插件;删除“”等特殊字符命名的文件夹, 删除IIS映射中与ASP站点运行无关的文件;启用和审核WEB站点日志记录, 采用UPLScan、HFNet Chk等工具加强系统和IIS的安全。
4 结束语
本文讨论了ASP+Access网站建设方案中所存在的隐患, 是笔者从事ASP+Access开发过程中的一些经验总结, 特别是在开发《基于ASP的图片评价系统》时就采用了以上的安全措施, 从测试来看, 达到了较好的安全效果。
参考文献
[1]苏玉雄.ASP动态网页制作基础教程[M].西安:西安电子科技大学出版, 2008.
[2]张洪明.ASP动态网站项目开发与案例教程[M].北京:电子工业出版社, 2011.
[3]韩殿元.ASP动态网站开发技术与应用[M].南京:南京大学出版社, 2007.
ASP网站安全问题 第7篇
ASP技术在网站建设中的应用, 实现了动态化的页面服务, 取代脚本程序, 连接了网站中的数据库, 降低了网站编程的难度[1]。网站建设中融入了ASP技术, 始终以ASP.NET的状态显示, 执行脚本命令, 显示正常的HTML网页。结合网站建设中的ASP技术, 分析网络安全方面潜在的风险, 如下:
1.开放性风险。ASP技术编程时, 采用了大量的非编译性语言, 无法保障源代码的安全性。例如:编程人员利用ASP技术实现网站中的交互功能, 选择form服务方式, 但是相关的编写内容会显示到网站的地址内, 不具备安全防护的措施, 攻击人员可以根据地质内显示的form信息, 获取页面验证, 直接进入到加密的网站内, 即使没有网站的登陆账号、密码, 也能访问网站信息, 降低了网站安全防护的力度。
2.Cookie风险。Cookie中包含了大量的临时浏览信息, 记录了ASP技术在网站中的工作状态。Cookie是ASP技术的主要组成, 编程人员在使用ASP技术的同时, 利用Cookie跟踪会话中的信息, 所以Cookie在完善ASP技术的同时, 也为攻击者提供了可用的信息, 不利于ASP技术网站的安全防护。
3.文件上传风险。ASP技术在网站建设中的文件上传行为, 一般出现在程度调用的环节中, 当编程人员需要进行文件长传时, 先要通过身份验证, 权限保留在可信任的操作人员手中, 而上传的文件中, 可能写入了病毒, 也会影响ASP技术的安全使用, 不利于网站的安全建设。
4.目录管理风险。编程人员在网站建设中, 使用了ASP技术的默认权限, 而且选择集中管理的方式, 由此很容易泄露网站安全管理的内容, 致使攻击者捕获目录管理的信息, 增加了网站安全建设的风险。默认权限虽然简化了ASP技术编写的难度, 但是安全性极低, 引起了目录管理风险, 需要编程人员注意目录风险的安全管理。
二、ASP技术开发的网站安全防护策略
结合网站建设中ASP技术存在的风险, 研究可用的安全防护策略, 一方面提高网站安全防范的力度, 另一方面强化ASP技术的应用, 规范其在网站中的应用。针对基于ASP技术的网站开发, 提出安全防护的策略, 如下:
1.密码服务。ASP技术在网站建设中的隐患, 可以采取密码服务的方式进行防护[2]。编程人员在设计ASP技术的同时, 设计密码服务的方案。基于ASP技术的网站安全防护中, 最基础的密码服务方案为:网站中的ASP内容, 都要设置对应的访问账户、密码, 网站后台验证通过后, 才能判账户、密码有效, 如果账户或密码无效, 服务器需主动防止登陆, ASP页面的加密服务, 可以分为两种操作, 第一种是利用微软加密, 采用Script Encoder实行页面防护, 保障ASP技术处于安全的状态, 而且Script Encoder具有高效的保护作用, 其可根据网站中ASP技术的需求, 编辑加密方案, 操作简单, 加密服务性强;第二种是借助组件技术, 在DDL中写入编程程序, 在保障ASP技术逻辑性的同时, 保护好网站的运行, 每段ASP代码运行时, 都要经过DDL逻辑操作, 虽然代码组件的工作量大, 但是有明显的防护功能, 确保ASP技术的安全运行。
2.防攻击策略。基于ASP技术开发的网站安全防护中, 落实防攻击策略, 主要用于保护ASP技术与SQL的安全连接。SQL是网站开发中的数据库, ASP技术在连接SQL时, 需采取防攻击策略, 保障ASP技术在SQL中的安全性[3]。例举防攻击策略的内容, 如: (1) 根据ASP技术在SQL中的应用状态, 设计合理的安全配置, 在SQL运行之前, 启动安全配置, 检查ASP技术提交的数据是否安全, 同时扫描SQL的服务端口, 如1433, 做好端口位置的安全防护工作; (2) 数据加密, ASP技术的开发应用, 降低了网站建设的难度, ASP编写简单, 应用难度低, 为了加强网站安全防护的力度, 编程人员采用数据加密的方法, 常见的有MD5、字段加密方法, 全面存储ASP中的运行数据, 保障数据服务的质量; (3) 权限控制, 其为SQL管理的控制策略, 其可控制ASP技术使用中的漏洞, 切断攻击的路径, 不同的SQL区域, 对应了不同的权限, 设计了不同的认证方式, 全面保护SQL的运行。
3.漏洞防护。ASP技术开发下的网站安全防护, 需要特别注意漏洞防护。ASP技术开在网站中的问题, 主要体现在软件安全方面, ASP编程自身可能携带病毒、木马, 进入网站服务器内, 不利于网站的安全运行, 所以提出漏洞防护的策略。首先执行打补丁, 消除攻击者可利用的漏洞, 按照服务系统的属性, 安装杀毒软件, 及时检查ASP技术中可能潜在的病毒、木马;然后关闭网站中不常用的权限, 如默认共享、客户组权限等, 保留常用的缺陷即可, 建立新的账户名, 删除原账户下的文件, 限制format.exe、cmd.exe等类型的文件, 以免升级为权限文件, 引发漏洞问题, 确保ASP的正常应用;最后禁止不需要的服务项目, 防止此类项目重新启动, 保障ASP技术处于安全的网站状态, 除此以外, 还要关闭不需要的端口, 如3389远程服务端口, 以免为攻击者提供远程攻击路径, 关闭项目和端口后, 配置IIS安全权限, 提高ASP技术开发网站的安全水平。
三、ASP技术开发下网站安全的硬件防护
基于ASP技术开发的网站风险, 大多来源于软件, 存在少量因素属于硬件干扰。针对网站安全建设中的ASP技术应用, 提出硬件上的防护措施, 如: (1) 维护网站运行的环境, 优化网站运行的设备, 提供防静电、防尘等措施, 消除外界因素对网站的破坏性, 进而体现ASP运行的安全度; (2) 定期维护网站运行装置, 避免破坏ASP技术的开发过程, 优化ASP技术在网站中的开发和建设; (3) 检测计算机网站系统, 维护ASP技术的运行环境, 提前做好风险预防的工作, 改善ASP技术开发网站的状态, 规范网站的安全性, 为ASP技术营造安全的环境。
结束语
ASP技术是网站建设中不可缺少的部分, 为了维护ASP网站建设的安全, 必须明确基于ASP技术网站建设中存在的风险, 由此才能准确地落实安全防护策略, 确保网站的安全建设及运行, 加强网络管理的力度。网站建设中编写ASP技术时, 应该提高对安全防护的重视度, 保障ASP技术下网站运行的安全性, 进而维护ASP技术的安全使用。
摘要:ASP是网站建设中最常用的技术, 提高了网站运行的水平。ASP技术在开发建设中, 需要做好安全防护的工作, 维护网站的安全性, 为ASP技术运行提供安全的环境, 确保ASP.NET服务处于正常的运行状态。本文结合ASP技术开发, 分析网站的安全防护。
关键词:ASP技术,开发,网站,安全防护
参考文献
[1]邵小兰.ASP.NET中的密码安全技术研究与应用[J].电脑与电信, 2015, 09:47-50.
[2]冯栋.基于ASP技术开发的网站安全防范[J].电脑知识与技术, 2010, 24:6711-6712.
ASP网站安全问题 第8篇
asp+access的安全隐患access数据库的安全性, 其次在于asp网页设计过程中的安全漏洞。
1. access数据库的存储隐患
在asp+access系统中, 如果获得或者猜到access数据库的存储路径和数据库名, 则该数据库就可以被下载到本地。例如:有些数据库, 直接就命名为data.mdb、qwer.mdb等, 而存储的文件夹名就是“database”、“data”或干脆放在根目录。这样, 只要在浏览器地址栏中敲入地址:"URL/database/data.mdb", 就可以轻易地把data.mdb下载到本地的机器中。
2. access数据库的解密隐患
access数据库的加密机制非常简单, 所以即使数据库设置了密码, 解密也很容易。该数据库系统通过将用户输入的密码与某一固定密钥进行异或来形成一个加密串, 并将其存储在*.mdb文件中从地址"&H42"开始的区域内。由于异或操作的特点是"经过两次异或就恢复原值", 因此, 用这一密钥与*.mdb文件中的加密串进行第二次异或操作, 就可以轻松地得到Access数据库的密码。基于这种原理, 可以很容易地编制出解密程序。
3.源代码的安全隐患
由于ASP程序采用的是非编译性语言, 这大大降低了程序源代码的安全性。任何人只要进入站点, 就可以获得源代码, 从而造成ASP应用程序源代码的泄露。
针对asp+access的安全隐患的一些对策
1.非常规命名法
防止数据库被找到, 最简单的方法就是是access数据库文件起一个比较复杂的名字, 并把它存放在多层目录下。例如:
sdgeqw55.mdb, 再把它放在如./asdfyy7/agh/ihbr44之类的深层目录下, 或者把数据库改为sdgeqw55.asp sdgeqw55.asa等。这样, 对于一些通过猜的方式得到Access数据库文件名的非法访问方法起到了有效的阻止作用。
在ASP程序设计中, 应尽量使用ODBC数据源, 不要把数据库名直接写在程序中, 否则, 数据库名将随ASP源代码的失密而一同失密。例如:
可见, 即使数据库名字起得再怪异, 隐藏的目录再深, ASP源代码失密后, 数据库也很容易被下载下来。如果使用ODBC数据源, 就不会存在这样的问题了:
2. 扩展名改为asp。
这种作法是比较专业但也是很安全的也是现在比较流行的作法, 但是现在许多的人只是作了一半, 只是将数据名改成ASP而以, 这样的话直接用FlashGet之类的下载工具一样可以将数据库下载:在数据库内创建一个字段, 名称随意, 类型是OLE对象, 内容设置为单字节型的"。这段代码运行完之后将会在数据库内生成一个nodownload表, 表内字段是notdown。如果数据库内已有同名的数据表存在请将代码内的nodownload改成自己想要的数据表名即可。
3. 扩展名改为asa。
这种方式的真谛是利用IIS对ASA文件的保护, 从而使得数据库文件不能从URL上直接请求下载, 但是这种方式被误解成只要将文件后缀改成ASA就可以了。要知道IIS只是对global asa这个文件名有请求保护, 所以这种方式只能将数据库名设置为global.asa, 而且要注意的是, 设置成global.asa之后最好不要将其放在主机或虚拟目录的根目录里, 不然会被IIS当然正常的global.asa文件进行尝试运行的。
4. 可以批量加密文件。
使用Script Encoder可以对当前目录中的所有的ASP文件进行加密, 并把加密后的文件统一输出到相应的目录中。例如:screnc*.asp c:web
5. 不过要在ASP程序中的connection对象的open方法中增加PWD的参数即可, 例如:
这样即使他人得到了employer1.mdb文件, 没有密码他是无法看到employer1.mdb的。
摘要:通过对asp+access网站中access数据库存在的主要安全问题和asp代码漏洞进行分析研究, 并从access数据库安全性和asp页面安全性等方面提出相应的安全防范对策。
关键词:asp,access,安全
参考文献
[1]Access数据库管理与开发案例训练教程.电子工业出版社
[2]Access项目案例导航.科学出版社
[3]数据库原理与应用 (Access) .清华大学出版社
ASP网站安全问题 第9篇
1 电子商务网站的安全分析
电子商务网站受到攻击后产生的危害主要体现在修改网页内容、窃取商业数据和个人账户资料、恶意破坏网站以及窃取程序文件等。基于ASP技术和Access数据库建设的电子商务网站,主要的安全隐患一方面来自Access数据库的安全性,另一方面来自ASP源文件和ASP网页设计过程中的安全意识。
1.1 Access数据库的存储隐患
采用Access数据库建设的电子商务网站中,如果有人获得或猜到了数据库的存储路径和数据名,那么该数据库就可以被下载到本地。例如,某电子商务网站的URL(Uniform Resource Locator)是http://www.ec.com,而网站使用的数据库ec.mdb就放在根目录http://www.ec.com/下。那么只要在在浏览器地址栏中输入地址:http://www.ec.com/ec.mdb,数据库ec.mdb就可以轻松的被下载了。
1.2 Access数据库的解密隐患
由于Access数据库的加密机制比较简单,即使设置了密码,也很容易解密。该数据库系统通过将用户输入的密码与某一固定的密钥进行异或来形成一个加密串,并将其存储在*.mdb文件从地址“&H24”开始的区域中。根据异或操作的特点,可以很轻易的编制出解密程序。所以,无论数据库是否设置密码,只要数据库被下载,其信息就没有任何安全性可言了。
1.3 ASP源文件的安全隐患
由于ASP程序是非编译性语言,采用ASP技术编写的脚本程序使用明文(plain text)编写,一旦ASP应用程序发布到网络环境中,源代码就很容易泄漏,大大降低了源程序代码的安全性。因此任何人闯入站点,那么就可以获得全部的ASP应用程序源代码。
1.4 ASP程序设计中的安全隐患
ASP代码利用表单实现和用户的交换的功能,在不同的ASP页面之间传递变量时,其内容会反映在浏览器的地址栏中。如果不采取适当的安全措施,那么只要记住这些内容就可以绕过用户身份验证而直接进入某些页面。例如,只要在浏览器的地址拦输入http://...page.asp?id=10,就可以绕过验证而直接进入满足条件“id=10”的页面。所以在设计注册和验证的页面时必须采取相应的措施来预防此类问题的发生。
1.5 SQL注入漏洞
很多电子商务网站都采用客户身份认证方式来达到内部网页加密的目的,即用户在登录窗口输入正确的用户名和密码就可以访问网页,否则报错。然而,“admin or 1=1”成为攻破该类认证系统的万能密码,类似的密码还可以有无数个。一般的电子商务网站在设计登录验证时使用下面的SQL语句来验证用户的合法性:
此时,用户只要根据sql构造一个特殊的用户名和密码,如:admin'or'1'='1。就可以成功登录。将程序和用户数据合起来将变成:
由于1=1是衡成立的,所以这个查询的结果也衡为真,因此就会登录成功。
2 提高电子商务网站安全性的方法
2.1 防止数据库被下载
1)非常规命名。为数据库文件起一个非常复杂的非常规名字且存放在多层目录下,可有效防止数据库被下载。例如,电子商务网站的数据库文件,不把它命名“ec.mdb”,而给它一个非常规的命名“adf3kxgce.mdb”,再把它放在如/fsawdk5kl/rtr6we/jhlj9/iuergh3p之类的深沉目录下。这样就加大了黑客通过猜测的方式来获得数据库的难度。
2)使用ODBC数据源。使用ODBC数据源也可以防止数据库被下载。在ASP程序设计中,应该尽量使用ODBC数据源,而不要把数据库名写在程序中。这样即使ASP代码泄露,数据库名也不会被知道。例如,在建立了一个数据源user后,打开数据库的ASP源码如下:
这样,在ASP程序中就不会出现源数据库的任何相关目录和名称,大大提高了数据库的安全性。
3)利用.MDE文件保护数据库。MDE是一种经过编译的特殊形式的数据库,把数据库文件转换为MDE文件后,可以完全保护Access中的代码免受非法访问。将.mdb文件转换为MDE文件时,Access将编译所有模块并删除所有可编辑的源代码,然后压缩目标数据库,而原始的.mdb文件不会受到任何影响。
4)改数据库扩展名。由于.inc文件在IIS上默认是不允许浏览的,因此根据IIS的这一特点可以把数据库的后缀名改为.inc。这种通过在IIS上把数据库所在的目录设置为不可读的方法也可以防止数据库被下载。
5)数据库加密。对数据库中的信息进行加密,可以保证即使在黑客下载到数据库文件并打开数据库后,也不能有效获取数据。目前的加密算法有很多,常用的专用密钥加密(如:3DES、IDEA、RC4和RC5)和公钥加密(如:RSA、SEEK、PGP和EU)能很好的保证数据的保密性、完整性和真实性。
2.2 对ASP页面进行加密
为有效的防止ASP源代码泄露,必须对ASP页面进行加密。ASP页面加密一般有两种方法:一种是使用组件技术将程序代码封装入DLL中;另一种是使用微软的Script Encoder对ASP页面进行加密。由于使用组件技术需对每段代码组件化,且由于操作烦琐,工作量较大等原因而很少使用。一般使用Script Encoder对ASP页面进行加密,它不但操作简单,而且加密效果也很好,只需掌握一些基本的命令即可,而且可以处理批量的ASP页面。
2.3 利用Session对象设计注册和验证页面
为防止未注册的用户绕过注册页面的验证而直接进入应用系统,可以采用Session对象来进行注册验证。例如,本系统利用下面的代码来实现注册页面的验证:
2.4 SQL注入漏洞防范策略
防范SQL注入漏洞,要求程序员形成良好的编程习惯,可以采用如下方法来防范这类攻击:
1)在客户身份认证时将用户名的检验和密码的检验分开。也就是先使用SQL语句检验登录的用户名是否存在,对于已存在的用户名确认只有一条记录再进行密码验证,否则就直接转入出错页面。
2)对用户提交的用户名和密码中可能存在安全隐患的特殊字符进行过滤。常见的可能存在安全隐患的特殊字符主要有:单引号、select、update、insert、delete、@、exec、alter、drop、create、backup、and、or、add、set、open、close等,但要注意ASP对大小写是不敏感的。
3 结束语
电子商务的安全涉及到交易过程中各种数据的可靠性、完整性和可用性。就整个电子商务系统而言,安全性可以分为网络节点的安全性、数据通信的安全性、应用程序的安全性、用户的认证管理和安全管理五个层次。随着网络与电子商务的迅速发展,创建稳定可靠的Web站点显的越来越重要。建设电子商务网站应该充分考虑电子商务中的安全性。随着黑客入侵手段的不断提高,只有不断提高安全意识,不断改进程序,才能确保电子商务网站的安全水平不断提高,减少被入侵的机会,建立真正稳定运行的电子商务网站。总之,保障电子商务网站的安全是一项不可松懈、长期而艰巨的工作和任务。
参考文献
[1]李存斌,樊建平.ASP高级编程及其项目应用开发[M].北京:中国水利水电出版社,2003.
[2]李进.用IIS+ASP建图书馆网站的安全性分析[J].图书馆理论与实践,2006(6):12-121.
[3]李栋.如何构建安全的电子商务网站[J].计算机安全,2005(6):33-36.
[4]谌爱文,施荣华.ASP+Access的安全性研究[J].微电子学与计算机,2006(6):108-110.
[5]周军.ASP网站系统安全技术研究[J].计算机应用与软件,2007,24(5):189-191.
[6]华军,邓晓红,张建忠.基于ASP技术网站建设的安全性研究[J].计算机工程与应用,2003(33):165-167.
[7]陈拥军,孟晓明,庞磊.ASP的安全漏洞与网络信息安全防护策略研究[J].计算机应用研究,2004(7):76-78.
[8]舒清录,廖明梅.基于ASP的Access数据库安全隐患及预防策略[J].软件导刊,2009,8(6):148-149.
ASP网站安全问题
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


