首页 《Web数据库技术》-高晗-电子教案 第8章

《Web数据库技术》-高晗-电子教案 第8章

举报
开通vip

《Web数据库技术》-高晗-电子教案 第8章第8章ASP网站的安全与对策l   Web服务器安全策略l  数据库安全与备份l  ASP安全性与防护l   IIS的安全性分析本章学习要点近年来,随着网络建设和应用系统开发的日益成熟与完善,尤其是互联网经济巨大的前景和风险共存的事实,安全问题逐步成为信息主管关注和讨论的焦点。一个好的安全解决方案离不开适当的安全目标和策略,而围绕企业重点资产和高风险威胁所进行的风险评估则是规划的基础。在规划企业安全时会考虑众多威胁,...

《Web数据库技术》-高晗-电子教案 第8章
第8章ASP网站的安全与对策l   Web服务器安全策略l  数据库安全与备份l  ASP安全性与防护l   IIS的安全性分析本章学习要点近年来,随着网络建设和应用系统开发的日益成熟与完善,尤其是互联网经济巨大的前景和风险共存的事实,安全问题逐步成为信息主管关注和讨论的焦点。一个好的安全解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 离不开适当的安全目标和策略,而围绕企业重点资产和高风险威胁所进行的风险评估则是规划的基础。在规划企业安全时会考虑众多威胁,包括来自外部或内部,应用系统实现的各个方面。绝大多数企业甚至是聘请的安全公司,往往把注意力集中于网络和操作系统安全,而容易忽视最重要的数据库安全。数据库安全是一个广阔的领域,从传统的备份与恢复,认证与访问控制,到数据存储和通信环节的加密,它作为操作系统之上的应用平台,其安全与网络和主机安全息息相关。8.1Web服务器的安全策略(1)版本的选择:最好使用英文版。(2)正确安装Windows2000Server(3)定制自己的Windows2000 Server (4)安装最新的系统补丁(ServicePack)与更新(Hotfix)程序(5)修改目录和文件权限(6)为管理员(Administrator)账号重新命名并指定安全的口令(7)禁用或删除不必要的帐号(8)关闭不必要的服务(9)安装防病毒软件(10)激活系统的审计功能(11)关于应用软件方面的建议(12)管理应用程序的选择 也可参考网络上的资源:l微软安全特性(中国):http://www.microsoft.com/china/technet/security/default.aspl微软补丁下载(中国):http://www.microsoft.com/china/windows2000/downloads/lCCERT安全资源:http://www.ccert.edu.cn/certs/index.php8.2数据库安全概述在数据库中,数据作为商业信息或知识,一旦遭受安全威胁将带来难以想像的严重后果。企业对数据的一个最基本要求,就是要确保它们能够在任何时候,被任何授权用户(如雇员或商业合作伙伴)方便、高效地访问。为此,企业会考虑创造多种对数据的访问通道,并确保它们的安全。但是,这些通道和计算机环境一样,是动态的,即当网络扩展时,它们随之创建或改变,并可能在未察觉和任何保护情形下不再可用。通过对数据库自身的安全保护,企业将可以在数据受到真正的威胁前设置最后一道防御屏障。数据库的常见安全问题及安全管理原则1.常见的数据库安全问题(1)脆弱的账号设置(2)缺乏角色分离(3)缺乏审计跟踪(4)未利用的数据库安全特征2.数据库安全管理原则(1)管理细分和委派原则(2)最小权限原则(3)账号安全原则(4)有效的审计Access数据库可能被下载的漏洞在用Access做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的Access数据库的路径和数据库名称,那么他就能够下载这个Access数据库文件,这是非常危险的。例如:如果Access数据库book.mdb放在虚拟目录下的database目录下,那么有人在浏览器中打入:http://someurl/database/book.mdb如果book.mdb数据库没有事先加密的话,那book.mdb中所有重要的数据都掌握在别人的手中。解决方法:(1)为数据库文件名称起个复杂的非常规的名字,并把它放在多级目录下。(2)不要把数据库名写在程序中。(3)使用Access来为数据库文件编码及加密。SQL数据库安全1.系统存储过程xp_cmdshell它是以操作系统命令行解释器的方式执行给定的命令字符串。具体语法是:xp_cmdshell{'command_string'}[,no_output]xp_cmdshell在默认情况下,只有sysadmin(系统管理员)的成员才能执行。但是,sysadmin也可以授予其他用户这个执行权限。在早期版本中,获得xp_cmdshell执行权限的用户在SQLServer服务的用户账户中运行命令。可以通过配置选项配置SQLServer,以便对SQLServer无sa访问权限的用户能够在SQLExecutiveCmdExecWindowsNT账户中运行xp_cmdshell。在SQLServer7.0中,该账户称为SQLAgentCmdExec。现在对于SQLServer2000,只要有一个能执行该存储过程的账号就可以直接运行命令了。对于NT和WIN2000,当用户不是sysadmin组的成员时,xp_cmdshell将模拟使用xp_sqlagent_proxy_account指定的SQLServer代理程序的代理账户。如果代理账户不能用,则xp_cmdshell将失败。所以即使有一个账户是master数据库的拥有者,也不能执行这个存储过程。如果有一个能执行xp_cmdshell的数据库账号,例如是空口令的sa账号。那么就可以执行这样的命令:execxp_cmdshell'netuserrefdom123456/add'execxp_cmdshell'netlocalgroupadministratorsrefdom/add'上面两次调用就在系统的管理员组中添加了一个用户:refdom获得了数据库的sa管理员账号后,就应该可以完全控制这个机器了,可见数据库安全的重要性。2.SQLServer的安全配置(1)加强像sa这样的账号的密码的管理。(2)对扩展存储过程进行处理。(3)加强对数据库登陆的日志 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 ,最好记录所有登陆事件。(4)用管理员账号定期检查所有账号,是否密码为空或者过于简单。数据库的备份在当今信息社会,最珍贵的财产并不是计算机软件,更不是计算机硬件,而是企业在长期发展过程中所积累下来的业务数据。建立网络最根本的用途是要更加方便地传递与使用数据,但人为错误、硬盘损坏、电脑病毒、断电或是天灾人祸等等都有可能造成数据的丢失。所以应该强调指出:“数据是资产,备份最重要”。1.威胁数据安全的因素分析(1)系统物理故障(2)系统软件设计的缺陷(3)使用人员人为失误(4)计算机病毒(5)黑客入侵(6)自然灾害2.网络数据备份的内容及方法(1)构造双机容错系统(2)多平台系统文件备份(3)各类数据库的备份(4)网络故障和灾难恢复(5)备份任务管理3.树立正确的备份观念很多计算机用户和管理人员虽然认识到备份的重要性,具备一定的备份概念,但仍存在一些误区。一个完整的备份方案大致应具备以下特点:l 保证数据资料的完整性。l 能自动排程设定,实现备份任务的管理。l 能对不同的存储介质进行有效管理。l  支持多种操作系统平台。l  操作简便、易于实现。除了技术上的要求外,制定周密的 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 也很重要。8.3ASP的安全性ASP是开发网站应用的快速工具,但是有些网站管理员只看到ASP的快速开发能力,却忽视了ASP安全问题。ASP从一开始就一直受到众多漏洞、后门的困扰,包括%81、密码验证问题、IIS的漏洞等都一直使ASP网站开发人员惴惴不安。通过ASP代码,可能很方便地入侵Web服务器、窃取服务器上的文件、捕获Web数据库等系统的用户口令,甚至恶意删除服务器上的的文件,直至造成系统损坏。ASP漏洞及解决方法1.HTML语句或者JavaScript语句对安全的影响ASP应用程序可能面临的攻击。过去许多Internet上用CGI写的留言本或BBS是把客户输入的留言赋给一个变量,然后再把这个变量插入到显示留言的HTML文件里,因此客户输入的文本如要在HTML文件里显示就得符合HTML标准,而CGI程序里一般都加入了特定的HTML语言。当客户输入内容,插入HTML文件时,即同时插入到了头尾HTML语句中,如:<font>客户输入的变量</font>但如果把前后的HTML标记屏蔽掉,就可以做很多事情。例如输入:</font>符合HTML标准的语句<font>前后的<font>是用来屏蔽CGI中的HTML语句用的。插入到HTML文件里的就变成了:<font></font>符合HTML标准的语句<font></font>由于这样一个特性,使得写个JavaScript的死循环变得非常容易,只要在输入框中输入:<ahref="URL"onMouseover="while(1){window.close('/')}">或<aherf="URL"onMousever="while(ture){window.close('/')}">就能让其他查看该留言的客户的浏览器因死循环而死掉。ASP开发的程序同样可能存在这个问题,因此当用ASP编写类似程序时应该做好对此类操作的防范,例如可以写一段程序判断客户端的输入,并屏蔽掉所有的HTML和JavaScript语句。2.IISWebServerDoS默认情况下,IIS容易被拒绝服务攻击。如果注册表中有一个叫“MaxClientRequestBuffer”的键未被创建,则针对NT系统的这种攻击通常能奏效。“MaxClientRequestBuffer”这个键用于设置IIS允许接受的输入量。如果设置为256(字节),则攻击者通过输入大量的字符请求IIS,将被限制在256字节以内,而系统的默认设置对此不加限制,因此,利用特殊的程序,就可以很容易地对IISServer实行DoS攻击,导致NT系统的CPU占用率达到100%。解决方案:运行Regedt32.exe程序,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters增加一个值:ValueName:MaxClientRequestBufferDataType:REG_DWORD设置为十进制,具体数值设置为想设定的IIS允许接受的URL最大长度。CNNS:设置为256。3.ASP程序密码验证漏洞很多网站把密码放到数据库中,在登陆验证中使用以下SQL语句(以ASP为例):sql="select*fromuserwhereusername='"&username&"'andpass='"&pass&'"此时,只要根据sql构造一个特殊的用户名和密码,如:ben'or'1'='1就可以访问原本无权访问的页面。此时,程序将会变成sql="select*fromusernamewhereusername="&ben'or'1'='1&"andpass="&pass&"or是一个逻辑运算符,作用是在判断两个条件的时候,只要其中一个条件成立,那么等式将会成立。而在SQL语言中,是以1来代表真的(成立),那么在这行语句中,原语句的“and”验证将不再继续,因为"1=1"和"or"令语句返回为真值。另外也可以构造以下的用户名:username='aa'orusername<>'aa'pass='aa'orpass<>'aa'相应地在浏览器端的用户名框内输入:aa'orusername<>'aa,口令框内写入:aa'orpass<>'aa,注意这两个字符串两头是没有单引号“'”的。这样就可以骗过系统。ASP中SQL注入与防护随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些想得知的数据,这就是所谓的SQLInjection,即SQL注入。用NBSI2.0软件对网上的一些ASP网站稍加扫描,就能发现许多ASP网站存在SQL注入漏洞。本节主要介绍SQL注入的防范措施,而要明白这些防范措施的用处,须先了解利用SQL注入漏洞入侵的过程。1.SQL注入原理假设登陆一名为http://www.xxxxx.com/的网站。在网站首页上,有名为“IE不能打开新窗口的多种解决方法”的链接,地址为:http://www.xxxxx.com/showdetail.asp?id=49,若在这个地址后面加上单引号('),服务器会返回下面的错误提示:MicrosoftJETDatabaseEngine错误'80040e14'字符串的语法错误在查询表达式'ID=49''中。/showdetail.asp,行8从错误提示中能看出以下几点:(1)网站使用的是Access数据库,通过JET引擎连接数据库,而不是通过ODBC。(2)程序没有判断客户端提交的数据是否符合程序要求。(3)该SQL语句所查询的表中有一名为ID的字段。2.判断能否进行SQL注入其实上例的测试方法并非十分准确。首先,不一定每台服务器的IIS都返回具体错误提示给客户端,如果程序中加了cint(参数)之类语句的话,SQL注入是不会成功的,但服务器同样会报错,具体提示信息为:处理URL时服务器上出错。请和系统管理员联络”。其次,部分对SQL注入有一点了解的程序员,认为只要把单引号过滤掉就安全了,这种情况不为少数,如果用单引号测试,是测不到注入点的。那么,什么样的测试方法才是比较准确呢?答案如下:第一种:http://www.xxxxx.com/showdetail.asp?id=49第二种:http://www.xxxxx.com/showdetail.asp?id=49and1=1第三种:http://www.xxxxx.com/showdetail.asp?id=49and1=2这就是经典的1=1、1=2测试法。不可以注入就比较容易判断了,第一种同样正常显示,第二种和第三种一般都会有程序定义的错误提示,或提示类型转换时出错。当然,这只是传入参数是数字型的时候用的判断方法,实际应用的时候会有字符型和搜索型参数。3.判断数据库类型及注入方法不同的数据库的函数、注入方法都是有差异的,所以在注入之前还要判断一下数据库的类型。网上大多数的网站数据库都是采用Access或SQLServer。SQLServer有一些系统变量,如果服务器IIS提示没关闭,并且SQLServer返回错误提示,则可以直接从出错信息获取数据库类型,方法如下:http://www.xxxxx.com/showdetail.asp?id=49anduser>0分析该语句:因为user是SQLServer的一个内置变量,它的值是当前连接的用户名,类型为nvarchar。当一个nvarchar的值跟int的数0比较时,系统会先试图将nvarchar的值转成int型,此时,SQLServer将出现错误提示:将nvarchar值“abc”转换数据类型为int的列时发生语法错误。abc即为变量user的值,这样,就得到了数据库的用户名。如果服务器IIS不允许返回错误提示,那怎么判断数据库类型呢?可从Access和SQLServer和区别入手。Access和SQLServer都有自己的系统表,例如存放数据库中所有对象的表,Access是在系统表[msysobjects]中,但在Web环境下读该表会提示“没有权限”,SQLServer是在表[sysobjects]中,在Web环境下可正常读取。4.SQL注入的一般步骤(1)判断环境,寻找注入点,判断数据库类型。(2)根据注入参数类型,重构SQL语句原貌。(3)将查询条件替换成SQL语句,猜解表名。(4)在表名和列名猜解成功后,再使用SQL语句,得出字段的值。5.SQL注入常用函数6.中文处理方法Access中,中文的ASCII码可能会出现负数,取出该负数后用abs()取绝对值,汉字字符不变。SQLServer中,中文的ASCII为正数,但由于是UNICODE的双位编码,不能用函数ascii()取得ASCII码,必须用函数unicode()返回unicode值,再用nchar函数取得对应的中文字符。7.利用系统表注入SQLServer数据库SQLServer是一个功能强大的数据库系统,与操作系统也有紧密的联系,这给开发者带来了很大的方便,但另一方面,也为注入者提供了一个跳板,以下是几个具体的例子:(1)http://Site/url.asp?id=1;execmaster..xp_cmdshell"netusernamepassword/add"--(2)http://Site/url.asp?id=1;execmaster..xp_cmdshell"netlocalgroupadministratorsname/add"—(3)http://Site/url.asp?id=1anddb_name()>0(4)http://Site/url.asp?id=1;backupdatabase数据库名todisk='c:\inetpub\wwwroot\1.db';--(5)http://Site/url.asp?id=1and(SelectTop1namefromsysobjectswherextype='U'andstatus>0)>0(6)http://Site/url.asp?id=1and(SelectTop1col_name(object_id('表名'),1)fromsysobjects)>08.绕过程序限制继续注入在“SQL注入的一般步骤”一节中,所用的语句均不包含单引号;在“利用系统表注入SQLServer数据库”中,有些语句包含有单引号,下面举例对这些语句进行改造:简单的如wherextype='U',字符U对应的ASCII码是85,所以可以用wherextype=char(85)代替;如果字符是中文的,例如wherename='用户',可以用wherename=nchar(29992)+nchar(25143)代替。9.防范方法(1)把500:100这个错误的默认提示页面“/iisHelp/common/500-100.asp”改成“C:\WINNT\Help\iisHelp\common\500.htm”即可,这样,无论ASP运行中出什么错,服务器都只提示HTTP500错误。(2)服务器管理员还应在IIS中为每个网站设置好执行权限,静态网站则无需设置“脚本和可执行”权限,一般情况下设为“纯脚本”权限即可。(3)对于数据库用户的权限配置也要谨慎。(4)程序员在编写程序时要对客户端提交的变量参数进行仔细地检测并给数据库中用户密码进行加密。关于IIS安全性问题的一点建议(1)使用最新版本的MicrosoftInternetInformationServer,并安装NT最新版本的ServicePack,在第一时间及时地更新所有的升级,并为系统打好一切补丁,请密切关注微软网站http://www.microsoft.com/。(2)服务器的文件系统不要使用FAT,应该使用NTFS。(3)把IIS中的sample、scripts、iisadmin和msadc等Web目录设置为禁止匿名访问并限制IP地址。(4)有条件的话就采用防火墙机制,最简单的如Web服务开在前台,目录放在后台,如果能一个服务一台机器当然最好。(5)Web目录、CGI目录、scripts目录和Winnt目录等重要目录要用NTFS的特性设置详细的安全权限,包含注册表信息的Winnt目录只允许管理员完全控制,一般的用户只读的权限也不要给。(6)只开需要的服务,屏蔽掉所有不应该打开的端口。(7)安装IIS的策略就是安全,够用。(8)有规则地检查管理员组和服务。(9)管理员的账号要设置得复杂一些,建议加入特殊字符。(10)把FTP,Telnet的TCP端口改为非标准端口,例如设置到10000~65000的范围。(11)删除可以删除的所有共享,包括打印机共享和隐藏的共享如ICP$,Admin$等。(12)将ASP的目录集中管理,ASP的程序目录设置详尽的访问权限,一般建议不要使用“读”权限。(13)把Winnt下的sam文件改名。(14)对于已知的NT安全漏洞,都应该在自己的机器上做测试检查,并及时安装补丁程序。(15)使用IIS的备份功能,将刚刚的设定全部备份下来,这样就可以随时恢复IIS的安全配置。本章小结系统架设时的不小心,程序编写时的不注意,往往就是可能导致泄密的原因。为了减少Web服务器不会再遭受这种安全漏洞的威胁,应确定Web服务器没有任何会泄漏珍贵信息的程序或不必要的Script以及档案,只安装必要的东西,并且定期使用安全检测软件对服务器进行检查,到网上了解最新的系统安全消息和知识。
本文档为【《Web数据库技术》-高晗-电子教案 第8章】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
科技制造的艺术美
暂无简介~
格式:ppt
大小:186KB
软件:PowerPoint
页数:0
分类:工学
上传时间:2019-11-02
浏览量:11