第一章 web应用程序安全与风险
1.1 web应用程序发展历程
1.1.1 web应用程序常见功能
- 购物
- 社交网络
- 银行服务
- web搜索
- 拍卖
- 博彩与投机
- 博客
- web邮件
- 交互信息
1.1.2 web应用程序的优点
- HTTP协议是轻量级的,无须链接
- 用户通过浏览器即可访问
- 界面美观,并可通过浏览器插件扩展功能
- 用于开发web程序的核心技术和语言相对简单
1.2 web应用程序安全
1.2.1 “本站点是安全的”
大多数web应用程序都声称是安全的,因为它们使用SSL。SSL是一种用于为用户浏览器和web服务器质检传输的数据提供机密性与完整性保护功能的技术。有助于防止信息泄露,并可保证用户处理的web服务器的安全性。但是SSL并不能抵御直接针对某个应用程序的服务器或客户端组件的攻击。
常见漏洞
- 不完善的身份验证措施
- 不完善的访问控制机制
- SQL注入
- 跨站点脚本
- 信息泄露
- 跨站点请求伪造
1.2.2 核心安全问题:用户可提交任意输入
绝大多数针对web应用程序的攻击都设计向服务器提交输入,旨在引起一些应用程序设计者无法预料或不希望出现的事件。
- 用户可干预客户端与服务器间传送的所有数据
- 用户可按任何顺序发送请求
- 用户不限于使用一种web浏览器访问应用程序
1.2.3 关键问题因素
- 不成熟的安全意识
- 独立开发
- 欺骗性的简化
- 迅速发展的威胁形势
- 资源与时间限制
- 技术上强其所难
- 对功能的需求不断增强
1.2.3 新的安全边界
- 必须在应用程序内部执行防御措施
- 第三方组件的安全
- 对访问用户的攻击
- 对客户端的攻击
1.2.5 web应用程序安全的未来
- 漏洞变得更加难以发现和利用
- 攻击目标由传统的服务器端应用转向用户应用程序
- 技术领域的变革