并且列举我们亲身体验过的在目前Web应用程序中存在的漏洞,这些漏洞表明绝大多数应用程序还远远不够安全。本节为大家介绍Web应用程序的发展历程。
第1章 Web应用程序安全与风险
Web应用程序安全无疑是当务之急,也是值得关注的话题。对相关各方而言,这一问题都至关重要。这里的相关各方包括因特网业务收入日益增长的公司、向Web应用程序托付敏感信息的用户,以及通过窃取支付信息或入侵银行账户偷窃巨额资金的犯罪分子。可靠的信誉也非常重要,没人愿意与不安全的Web站点进行交易,也没有组织愿意披露有关其安全方面的漏洞或违规行为的详细情况。因此,获取当前Web应用程序安全状况的可靠信息不可小视。
本章简要介绍Web应用程序的发展历程及它们提供的诸多优点,并且列举我们亲身体验过的在目前Web应用程序中存在的漏洞,这些漏洞表明绝大多数应用程序还远远不够安全。本章还将描述Web应用程序面临的核心安全问题(即用户可提交任意输入的问题),以及造成安全问题的各种因素。最后讨论Web 应用程序安全方面的最新发展趋势,并预测其未来的发展方向。
1.1 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应用程序的攻击者能够窃取个人信息,进行金融欺诈或执行针对其他用户的恶意行为。