Web应用程序安全无疑是当务之急,也是值得关注的话题。对相关各方而言,这一问题都至关重要。这里的相关各方包括因特网业务收入日益增长的公司、向Web应用程序托付敏感信息的用户,以及通过窃取支付信息或入侵银行账户偷窃巨额资金的犯罪分子。可靠的信誉也非常重要,没人愿意与不安全的Web站点进行交易,也没有组织愿意披露有关其安全方面的漏洞或违规行为的详细情况。因此,获取当前Web应用程序安全状况的可靠信息不可小视。
本章简要介绍Web应用程序的发展历程及它们提供的诸多优点,并且列举我们亲身体验过的在目前Web应用程序中存在的漏洞,这些漏洞表明绝大多数应用程序还远远不够安全。本章还将描述Web应用程序面临的核心安全问题(即用户可提交任意输入的问题),以及造成安全问题的各种因素。最后讨论Web应用程序安全方面的最新发展趋势,并预测其未来的发展方向。
Web应用程序的发展历程
在因特网发展的早期阶段,万维网(World WideWeb)仅由Web站点构成,这些站点基本上是包含静态文档的信息库。随后人们发明了Web浏览器,通过它来检索和显示那些文档,如图1-1所示。这种相关信息流仅由服务器向浏览器单向传送。多数站点并不验证用户的合法性,因为根本没有必要这样做;所有用户同等对待,提供同样的信息。创建一个Web站点所带来的安全威胁主要与Web服务器软件的(诸多)漏洞有关。攻击者入侵Web站点并不能获取任何敏感信息,因为服务器上保存的信息可以公开查看。所以攻击者往往会修改服务器上的文件,以歪曲Web站点的内容,或者利用服务器的存储容量和带宽传播“非法软件”。
如今的万维网与早期的万维网已经完全不同,Web上的大多数站点实际上是应用程序(见图1-2)。它们功能强大,在服务器和浏览器之间进行双向信息传送。它们支持注册与登录、金融交易、搜索以及用户创作的内容。用户获取的内容以动态形式生成,并且往往能够满足每个用户的特殊需求。它们处理的许多信息属于私密和高度敏感的信息。因此,安全问题至关重要:如果人们认为Web应用程序会将他们的信息泄露给未授权的访问者,他们就会拒绝使用这个Web应用程序。
图1-1 包含静态信息的传统Web站点
图1-2 典型的Web应用程序
Web应用程序带来了新的重大安全威胁。应用程序各不相同,所包含的漏洞也各不相同。许多应用程序是由开发人员独立开发的,还有许多应用程序的开发人员对他们所编写的代码可能引起的安全问题只是略知一二。为了实现核心功能,Web应用程序通常需要与内部计算机系统建立连接。这些系统中保存着高度敏感的数据,并能够执行强大的业务功能。15年前,如果需要转账必须去银行,让银行职员帮助你完成交易。而今天,你可以访问银行的Web应用程序,自己完成转账交易。进入Web应用程序的攻击者能够窃取个人信息,进行金融欺诈或执行针对其他用户的恶意行为。
Web应用程序的常见功能
创建Web应用程序的目的是执行可以在线完成的任何有用功能。近些年出现的一些Web应用程序的主要功能有:
q 购物(Amazon);
q 社交网络(Facebook);
q 银行服务(Citibank);
q Web搜索(Google);
q 拍卖(eBay);
q 博彩与投机(Betfair);
q 博客(Blogger);
q Web邮件(Gmail);
q 交互信息(Wikipedia)。
如今,使用计算机浏览器访问的应用程序的功能越来越多地与使用智能手机或平板电脑访问的移动应用程序的功能重叠。大多数移动应用程序都通过浏览器或定制客户端与服务器进行通信,这些浏览器或客户端大多使用基于HTTP的API。应用程序功能和数据通常在应用程序用于不同用户平台的各种接口之间共享。
除公共因特网外,组织内部已广泛采用Web应用程序来支持关键业务功能。许多这类应用程序可以访问各种高度敏感的数据和功能。
q 用户可以使用HR应用程序访问工资信息、提供并接收绩效反馈,以及管理人员招聘和纪律处分程序。
q 连接关键体系架构(如Web和邮件服务器)的管理接口、用户工作站及虚拟机管理。
q 用于共享文档、管理工作流程和项目、跟踪问题的协作软件。这些功能通常涉及重要的安全和监管问题,而且组织结构大多完全依赖于它们的Web应用程序内置的控件来实现这些功能。
q 企业资源规划(ERP)软件等业务应用程序,这类应用程序以前使用专用厚客户端应用程序访问,现在则可以通过Web浏览器进行访问。
q 电子邮件之类的软件服务,这类服务最初需要独立的电子邮件客户端,现在可以通过Web接口(如Outlook Web Access)访问。
q 传统的桌面办公应用程序(如文字处理程序和电子表格)已通过Google Apps和Microsoft Office Live等服务转换为Web应用程序。
为降低成本,组织逐渐将各种任务外包给外部服务提供商来完成,因此,在上述所有示例中,我们所认为的“内部”应用程序正日益由外部机构托管。在这些所谓的“云”解决方案中,业务关键功能和数据向数目更庞大的潜在攻击者开放,而组织却越来越多地依赖于不受其控制的安全防御。
大多数计算机用户所需要的客户端软件仅仅是一个Web应用程序,这样的时代即将来临。到那时,用户使用一组共享的协议和技术即可执行各种功能,但随之也会出现各种常见的安全漏洞。
Web应用程序的优点
Web应用程序越来越流行的原因显而易见。若干技术因素已经与主要的商业动机相结合,从而引发了因特网使用方式上的重大变革。
q HTTP是用于访问万维网的核心通信协议,它是轻量级的,无须连接。这一点提供了对通信错误的容错性。应用HTTP,许多传统客户端—服务器应用程序中的服务器无须再向每一个用户开放网络连接。HTTP还可通过代理和其他协议传输,允许在任何网络配置下进行安全通信。
q 每个Web用户都在其计算机和其他移动设备上安装了浏览器。Web应用程序为浏览器动态部署用户界面,不必像以前的Web应用程序那样需要分配并管理独立的客户端软件。界面变化只需在服务器上执行一次,就可立即生效。
q 如今的浏览器功能非常强大,可构建内容丰富并且令人满意的用户界面。Web界面使用标准导航和输入控件,可保证用户即时熟悉这些功能,而不需要学习如何使用各种应用程序。应用程序可通过客户端脚本功能将部分处理交由客户端完成,必要时,可使用厚客户端组件任意扩展浏览器的功能。
q 用于开发Web应用程序的核心技术和语言相对简单。即使是初学者,也可使用现有的各种平台和开发工具,开发出强大的应用程序,还有大量开源代码和其他资源可供整合到定制的应用程序中。
——摘自《黑客攻防技术宝典:Web实战篇(第2版)》
分享到:
相关推荐
OWASP Top 10 2017版是对Web应用程序中最为普遍和严重的安全风险的汇总,该列表由开放式Web应用安全项目(OWASP)发布,旨在提高开发人员、安全专家和企业组织对这些风险的认识,并提供相应的对策。OWASP Top 10是...
### OWASP发布的Web应用程序的十大安全风险解析 #### 一、概述 OWASP(Open Web Application Security Project,开放网络应用程序安全项目)是一个国际性的非营利组织,致力于提高软件安全性。自2003年起,OWASP每...
### 堵住十大安全漏洞避免Web应用程序的安全风险 随着信息技术的发展,Web应用程序因其灵活性和易用性成为了许多企业的首选。然而,随着Web应用程序数量的增长,相应的安全问题也日益凸显。为了帮助企业及其开发者...
Java Web应用程序安全技术研究主要涉及以下几个重要知识点: 1. 网络技术与Java Web技术的发展: 随着信息技术的飞速发展,网络技术已经广泛应用于我们生活的方方面面,Java Web技术作为网络技术中的一种,因其跨...
在网络安全领域,渗透测试是确保Web应用程序安全的关键步骤。OWASP(开放网络应用安全项目)的Web应用程序安全测试指南(WSTG)提供了一套全面的方法论,帮助测试人员发现并修复潜在的安全漏洞。以下是对这些知识点...
《Web应用程序安全手册》是一本全面探讨Web应用安全的指南,旨在帮助开发者、系统管理员以及安全专业人士理解并解决Web应用中的安全问题。Web应用程序在现代社会中扮演着至关重要的角色,但同时也面临着各种安全威胁...
如果多个Web应用程序共用一个应用程序池,则可能存在安全风险,因为一个应用程序的崩溃可能会导致整个应用程序池中的W3wp进程退出,从而影响到其他Web应用程序。因此,如果内存资源允许,通常建议为每个Web应用程序...
通过深入理解和实施Web应用程序测试报告中的建议,开发团队可以显著提高其应用的安全性,保护用户数据,同时避免因安全漏洞导致的法律风险和品牌损害。安全测试不仅是开发过程的一部分,也是持续监控和改进整个Web...
Web应用安全开发规范是针对当前...通过遵循这些规范,开发者可以显著降低Web应用遭受攻击的风险,保障用户和企业数据的安全。然而,安全是个持续的过程,开发人员应时刻关注最新的安全动态,定期评估并更新安全措施。
他们的“OWASP Top 10”报告是业界广泛引用的Web应用程序安全风险指南,每几年更新一次,反映了当前最突出的安全威胁。2017年的版本列出了当时最严重的10个Web应用安全风险,以下是对这些风险的详细解读: 1. **...
Web应用安全是一个至关重要的领域,随着互联网的普及和数字化转型的加速,Web应用程序已经成为网络攻击的主要目标。本书《Web应用安全威胁与防治+基于OWASP+Top+10与ESAPI.pdf》深入探讨了Web应用面临的各类安全威胁...
- **动态分析(DAST)**:也称为动态安全测试或黑盒测试,授权企业在黑客入侵前识别并修复Web应用程序中的安全问题。通过模拟黑客的攻击方式,检测应用程序中存在的漏洞。 #### 四、Veracode的特色服务 - **Dynamic ...
### Web应用程序测试方法与技术详解 #### 一、Web应用程序测试的重要性 随着互联网技术的飞速发展,Web应用已经成为企业信息化的重要组成部分。由于其基于浏览器/服务器(B/S)模式的特点,Web应用在功能实现、...
OWASP 10 项最关键的 Web 应用程序安全风险(2021)。每一条规则都非常详细(包含规则说明、违规代码示例、修复代码示例、参考说明等)。 使用时打开主页面“OWASP2021.html”即可看到所有编码规则的目录,点击相关...
OWASP 10 项最严重的 Web 应用程序安全风险 (2017)。每一条规则都非常详细(包含规则说明、违规代码示例、修复代码示例、参考说明等)。 使用时打开主页面“OWASP2017.html”即可看到所有编码规则的目录,点击相关...
Java Web应用程序的安全模型是保障Web应用免受未经授权访问或攻击的关键机制。Servlet技术规范定义了两种主要的安全模型:声明性安全模型和程序性安全模型。 1. 声明性安全模型: 声明性安全模型主要依赖于Web应用...
网络安全是当今信息时代的重要组成部分,随着互联网技术的飞速发展和网络应用的广泛普及,网络安全问题日益突出,尤其是Web应用程序的安全问题更是层出不穷。Web应用程序作为互联网中不可或缺的一部分,其安全漏洞...