Web安全可以从以下三个方面进行考虑: Web服务器的安全 Web客户端的安全 Web通信信道的安全
Web服务器的安全
针对Web服务器的攻击可以分为两类: 一是利用Web服务器的漏洞进行攻击,如IIS缓冲区溢出漏洞利用、目录遍历漏洞利用等; 二是利用网页自身的安全漏洞进行攻击,如SQL注入,跨站脚本攻击等。
针对Web服务器具体的安全威胁主要体现在以下几个方面:
- 服务器程序编写不当导致的缓冲区溢出(Buffer Overflow)并由此导致远程代码执行。
- 针对服务器系统的拒绝服务攻击(Denial of Service)。
- 脚本程序编写不当、过滤不严格造成的数据库查询语句注入(SQL Injection),可能引起信息泄漏、文件越权下载、验证绕过、远程代码执行等。
- 乐观相信用户输入、过滤不严导致跨站脚本攻击(Cross Site Script),在欺骗管理员的前提下,通过精心设计的脚本获得服务端Shell。
Web客户端的安全
- Java Applet、ActiveX、Cookie等技术大量被使用,当用户使用浏览器查看、编辑网络内容时,采用了这些技术的应用程序会自动下载并在客户机上运行,如果这些程序被恶意使用,可以窃取、改变或删除客户机上的信息。
- 浏览网页所使用的浏览器存在众多已知或者未知的漏洞,攻击者可以写一个利用某个漏洞的网页,并挂上木马,当用户访问了这个网页之后,就中了木马。这就是网页木马,简称网马。
- 跨站脚本攻击(XSS)对于客户端的安全威胁同样无法忽视,利用XSS的Web蠕虫已经在网络中肆虐过。
浏览器本身漏洞
浏览器的功能越来越强大,但是由于程序结构的复杂,在堵住了旧的漏洞的同时,可能又出现了新的漏洞。浏览器的安全漏洞可能让攻击者获取磁盘信息,安全口令,甚至破坏磁盘文件系统等。
- UNIX下的lynx的一个安全漏洞 在Lynx的2.7.1版本之前,都存在着漏洞,只要作一个包含backtick字符的LynxDownLoad URL,它就允许Web创建者在用户的机器上执行任意的命令。解决这个问题的方法是升级lynx的版本。
- Microsoft Internet Explorer 的安全漏洞
- Netscape的安全漏洞 (1)缓冲区溢出漏洞 (2)个人喜好漏洞 (3)类装载器漏洞 (4)长文件名电子邮件漏洞 (5)Singapore隐私漏洞
Microsoft Internet Explorer 的安全漏洞
(1) 缓冲区溢出漏洞 在Microsoft Internet Explorer 4和4.01以下的版本,存在一系列的编程漏洞。解决的方法就是安装补丁程序或者升级浏览器版本。 (2) 递归Frames漏洞 在4.x和5.0版本中存在这个漏洞。可能使得浏览器崩溃导致不能使用。 (3) 快捷方式漏洞 这个漏洞在Microsoft IE 3.01之前的版本存在,现在基本堵上了。 (4) IE5的ActiveX漏洞 通过IE5的ActiveX脚本,IE5还允许网络入侵者随意读取浏览器用户的磁盘文件。这个漏洞可以通过E-Mail来执行,解决的方法是关闭浏览器的ActiveX功能。 (5) 重定向漏洞 IE4和IE5在WIN95/NT4下,通过该漏洞可以任意的读取浏览者本地硬盘的文件,并可能对Windows进行欺骗,而且有可能绕过防火墙读取本地文件。
浏览器泄露的敏感信息
- web 服务器大多对每次接受的访问都作相应的记录,并保存到日志文件中。通常包括: 来访的IP地址 来访的用户名 请求的URL 请求的状态 传输的数据的大小。
- 浏览器在向外传送信息的时候,很可能已经把自己的敏感信息送了出去。
Web通信信道的安全
和其他的Internet应用一样,Web信道同样面临着网络嗅探(Sniffer)和以拥塞信道、耗费资源为目的的拒绝服务攻击(Denial of Service)的威胁。
Web安全概述
OWASP(Open Web Application Security Project)的调查结果显示,对Web应用危害较大的安全问题分别是:
- 未验证参数
- 访问控制缺陷
- 账户及会话管理缺陷
- 跨站脚本攻击
- 缓冲区溢出
- 命令注入
- 错误处理
- 远程管理
- Web服务器及应用服务器配置不当