Web安全漏洞的研究

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Web安全漏洞的研究
作者:李永钢彭云峰
来源:《科技视界》2014年第32期
【摘要】Web信息系统已经在当今的各个领域广泛应用,而这些基于Web的应用系统在网络环境中正面临着安全方面的威胁。

本文总结了常见的Web安全漏洞和Web攻击方法,探讨了Web安全的主要技术,并提出了应对这些安全威胁的防范措施,这些措施将对设计人员、开发人员、架构师和管理人员有益。

【关键词】Web安全漏洞;Web系统;信息技术
0 引言
近些年来,国内的各个领域行业都在上线基于Web的信息系统,这些Web信息系统可以为用户提供快捷的服务,为企事业单位提供业务支持和方便的信息管理。

然而开发人员和管理人员往往却忽略了Web系统的安全性,这些人员对安全问题不够重视,缺乏有效防范的经验,上线系统也没有经过全面的安全测试。

随着这些Web系统的使用,各种安全漏洞也会逐渐的暴露出来。

基于HTTP的服务是世界上应用最广泛的服务,但是HTTP请求并不会被防火墙所拦截,操作系统和其他防护软件通常也不会对这些请求进行仔细检查,所以Web站点常被黑客入侵,Web信息系统常遭受攻击。

OWASP(开放式Web应用程序安全项目)列出了“Web系统十大安全隐患”,靠前的包括SQL注入攻击、跨站点脚本、URL非限制访问等。

因此,Web信息系统在上线之前不仅要做功能上的测试,还非常有必要做安全性的测试,开发者需要及早发现Web系统中的全漏洞,防范潜在的安全隐患。

1 常见的Web安全漏洞
1.1 SQL注入(SQL injection)
SQL注入攻击是多连接的应用程序中的一种常见漏洞,它利用SQL的语法在程序代码预先定义好的字符拼接SQL语句中添加额外的SQL语句元素,欺骗数据库服务器执行非授权的任意查询,篡改和执行命令。

因为各种数据库管理系统DBMS有其自身的特点,所以攻击者使用的实际代码也不尽相同。

在所有Web系统漏洞中,SQL注入的风险最高,因为SQL注入攻击能够轻易的绕过操作系统防火墙并直接访问数据库,甚至能够获得DBMS所在的服务器的管理员权限。

1.2 跨站脚本(XSS)
开发者为了提高用户的使用体验,通常在Web中增加很多动态的内容,而这些内容通常使用客户端脚本实现,这些系统易受到XSS的攻击。

XSS又叫CSS(Cross Site Script 跨站脚本)它指攻击者在Web页面中插入恶意的html代码,当用户请求该页面时,被嵌入的恶意html代码会被执行,从而达到攻击者的特殊目的。

XSS属于被动式的攻击,它通常的传播途径包括Email、IM、聊天室、留言本、论坛和其他交互式平台。

XSS攻击包括存储式跨站脚本攻击、反射跨站脚本攻击和基于Dom的跨站脚本攻击。

调查显示80%的网站存在跨站脚本漏洞,这些漏洞会造成严重危害,例如泄露机密信息,执行ActiveX或Flash内容等。

1.3 跨站请求伪造(CSRF)
CSRF(Cross Site Request Forgery)通过伪装受信用户的请求来网站信息。

它与XSS的攻击方式完全不同,也更加难以防范,这种攻击通过在授权用户访问的页面中包含链接或脚本的方式运行。

CSRF依赖客户端浏览器并通过混淆过的代理人进行攻击。

该漏洞危害较高,它可以是攻击者获得管理员权限,盗取用户的银行、信用卡信息,受信的用户被执行恶意的操作等。

1.4 Cookie欺骗漏洞
Cookie仅以key-value的方式保存信息但不会解释和执行,Web服务器可以通过再次发送消息来改变客户端的Cookie。

可以将Cookie认为是用户访问网站后,网站在用户的电脑上留下的信息,以方便用户下次登录认证时能辨识用户身份或者用户行为习惯等。

如果Web系统使用明文Cookie或单靠Cookie进行身份验证,就容易被攻击者利用工具修改客户端的Cookie 欺骗服务器。

这种攻击分为文件型Cookie欺骗和会话型Cookie欺骗,这两种方式的区别在于一个存储于文件中,一个存储于内容中。

该漏洞可以使hacker构造自己需要的Cookie信息发送给服务器或直接伪造数据包,将HTTP头的Cookie字段修改,或者假设虚假代理服务器,发送伪造的Cookie信息。

1.5 缓冲区溢出
缓冲区溢出漏洞是Web服务器没有对用户提交的超长请求没有进行合适的处理。

这种请求可能包括超长URL、HTTP头部域,或者是其它超长的数据。

一些Web系统通常允许用户向服务器提交比较大的数据例如文件上传,如果不对上传的文件做限制,则上传的数据可能会超出服务器设定缓存区的大小,一部分数据会溢出到堆栈中从而使服务器执行溢出的部分代码。

这种漏洞可能导致执行任意命令或者是拒绝服务。

2 Web安全漏洞防范
针对多样的Web安全漏洞,开发人员和管理人员需要使用多种安全防范措施。

对于SQL注入漏洞,首先不要信任用户的输入,要对用户的输入进行正则表达式检验,将常用的攻击参数过滤。

另外尽量不要是拼接字符串的方式写SQL,如果不能使用存储过程,
就使用参数化的的SQL语句,要确保应用程序使用具有最低的数据库权限登录限制它的数据库中的访问功能。

对于跨站脚本漏洞,首先要对输入的类型、格式、长度和取值范围进行校验,只接受有效的数据如标题、Cookies、查询的字符串、表单信息等,拒绝接受其他数据。

另外对输出进行重编码,例如,对特殊字段、字符串参数、cookie信息等进行编码,对从无法确定其数据是否安全的数据库、共享数据库信息进行编码,选择性清除在类似<b>等标签元素上编码。

对于跨站请求伪造,首先要求服务器能够区分用户请求的类型,例如GET或POST,这样做可以增加攻击者的攻击难度。

另外可以使用HTTP的Referer校验手段,浏览器向Web服务器发送请求时,一般都会带上Referer,服务器可以从当中统计出来每天用户的点击量等有用信息。

可以使用代码来限制Web系统访问文件系统的区域和执行I/O的能力。

例如,可以限制某个 Web 系统只能在指定的虚拟目录下执行I/O操作。

这些可以通过编程或配置代码访问安全策略来完成。

您可以使用一套方法保证Web服务器的安全。

保证您的帐户、协议、端口、服务、共享、文件与目录和注册表的安全。

3 总结
迄今为止,越来越多的企事业单位依赖互联网来构建他们核心业务的Web系统,但是Web系统的安全问题尚未受到开发人员和管理人员的重视。

鉴于此,本文分析了当前Web系统中存在安全漏洞的客观事实,总结了常见的Web安全漏洞如SQL注入、XSS、CSRF、Cookie欺骗、缓冲区溢出等,并针对不同的安全漏洞提出了一些安全防范措施,为开放环境下Web系统的安全实施提供了有效(下转第268页)(上接第96页)支持。

【参考文献】
[1]Open Web Application Security Project. OWASP top 10 - 2010: the ten most critical Web application security risks [R].2010.
[2]OWASO.Categrory:OWASO Web Scarab project [EB/OL].https://,2012.
[责任编辑:薛俊歌]。

相关文档
最新文档