一、Web 应用程序安全与风险
随着 Web3.0、社交网络、微博、移动 APP、微信小程序等等一系列新型的互联网产品的诞生,基于 Web 环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在 web 平台上,网站内的信息可以直接和其他网站相关信息进行交互和倒腾,能通过第三方信息平台同时对多家网站的信息进行整合使用。用户在互联网上能拥有自己的数据,并能在不同网站上使用,用浏览器即可以实现复杂的系统程序才具有的功能。
Web 业务的迅速发展也引起黑客们的强烈关注,接踵而至的就是 Web 安全威胁的凸显,黑客利用网站操作系统的漏洞和 Web 服务程序的 SQL 注入漏洞等得到 Web 服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。这也使得越来越多的用户关注应用层的安全问题,对 Web 应用安全的关注度也逐渐升温。
“本章主要介绍 web 应用程序的发展历程及它们提供的诸多优点,并且列举我们亲身体验过的在目前 Web 应用程序中存在的漏洞,这些漏洞表明绝大多数应用程序远远不够安全。
1.1 Web应用程序的发展历程
静态内容阶段
在这个最初的阶段,使用 Web 的主要是一些研究机构。Web 由大量的静态 HTML 文档组成,其中大多是一些学术论文。Web 服务器可以被看作是支持超文本的共享文件服务器。“
CGI程序阶段
在这个阶段,Web 服务器增加了一些编程 API通过这些 API 编写的应用程序,可以向客户端提供一些动态变化的内容Web 服务器与应用程序之间的通信,通过 CGI(CommonGateway Interface协议完成,应用程序被称作 CGI 程序。
脚本语言阶段
在这个阶段服务器端出现了 ASP、PHP、JSP、CodFusion 等支持 session 的脚本语言技术浏览器端出现了 JavaApplet、JavaScript 等技术。使用这些技术,可以提供更加丰富的动态内容。
瘦客户端应用阶段
在这个阶段,在服务器端出现了独立于 Web 服务器的应用服务器。同时出现了 Web MVC 开发模式,各种 Web MVC 开发框架逐渐流行,并且占据了统治地位。基于这些框架开发的 Web 应用通常都是瘦客户端应用,因为它们是在服务器端生成全部的动态内容。“
RIA应用阶段
在这个阶段,出现了多种 RIA(Rich Internet Application)技术,大幅改善了 Web 应用的用户体验。应用最为广泛的 RIA 技术是DHTMLAjaxAjax 技术支持在不刷新页面的情况下动态更新页面中的局部内容。同时诞生了大量的 Web 前端 DHTML 开发库,例如 Prototype、DojoExtJSiQuery/jQuery UI 等等,很多开发库都支持单页面应用(Single Page Application)的开发。其他的 RIA 技术还有 Adobe 公司的 Flex、微软公司的 Silverlight、Sun 公司的JavaFX (现在为Oracle 公司所有)等等。
移动 Web应用阶段
在这个阶段,出现了大量面向移动设备的 Web 应用开发技术。除了 Android、ioS、WindowsPhone 等操作系统平台原生的开发技术之外,基于 HTML5 的开发技术也变得非常流行。从上述 web 开发技术的发展过程看,Web 从最初其设计者所构思的主要支持静态文档的阶段,逐渐变得越来越动态化。Web 应用的交互模式,变得越来越复杂:从静态文档发展到以内容为主的门户网站、电子商务网站、搜索引擎、社交网站,再到以娱乐为主的大型多人在线游戏、手机游戏。
1.1.1 Web应用程序的常见功能
创建 Web 应用程序的目的是执行可以在线完成的任何有用功能。近些年出现的一些 Web 应用程序的主要功能有:
- 购物
- 社交网络
- 银行服务
- Web 搜索
- 拍卖
- 博客
- Web 邮件
- 交互信息
- 小程序
如今,使用计算机浏览器访问的应用程序的功能越来越多地与使用智能手机或平板电脑访问的移动应用程序的功能重叠。大多数移动应用程序都通过浏览器或定制客户端与服务器进行通信,这些浏览器或客户端大多使用基于HTTP 的API。应用程序功能和数据通常在应用程序用于不同用户平台的各种接口之间共享。“
除公共因特网外.组织内部已广泛采用Web 应用程序来支持关键业务功能。许多这类应用程序可以访问各种高度敏感的数据和功能。
- 用户可以使用 HR应用程序访问工资信息、提供并接收绩效反馈,以及管理人员招聘和纪律处分程序。