Web应用程序安全与风险

摘要:
Web应用程序安全无疑是当务之急,也是值得关注的话题。因此,获取当前Web应用程序安全状况的可靠信息不可小视。最后讨论Web应用程序安全方面的最新发展趋势,并预测其未来的发展方向。进入Web应用程序的攻击者能够窃取个人信息,进行金融欺诈或执行针对其他用户的恶意行为。Web应用程序的常见功能创建Web应用程序的目的是执行可以在线完成的任何有用功能。除公共因特网外,组织内部已广泛采用Web应用程序来支持关键业务功能。

Web应用程序安全无疑是当务之急,也是值得关注的话题。对相关各方而言,这一问题都至关重要。这里的相关各方包括因特网业务收入日益增长的公司、向Web应用程序托付敏感信息的用户,以及通过窃取支付信息或入侵银行账户偷窃巨额资金的犯罪分子。可靠的信誉也非常重要,没人愿意与不安全的Web站点进行交易,也没有组织愿意披露有关其安全方面的漏洞或违规行为的详细情况。因此,获取当前Web应用程序安全状况的可靠信息不可小视。

本章简要介绍Web应用程序的发展历程及它们提供的诸多优点,并且列举我们亲身体验过的在目前Web应用程序中存在的漏洞,这些漏洞表明绝大多数应用程序还远远不够安全。本章还将描述Web应用程序面临的核心安全问题(即用户可提交任意输入的问题),以及造成安全问题的各种因素。最后讨论Web应用程序安全方面的最新发展趋势,并预测其未来的发展方向。

Web应用程序的发展历程

在因特网发展的早期阶段,万维网(World WideWeb)仅由Web站点构成,这些站点基本上是包含静态文档的信息库。随后人们发明了Web浏览器,通过它来检索和显示那些文档,如图1-1所示。这种相关信息流仅由服务器向浏览器单向传送。多数站点并不验证用户的合法性,因为根本没有必要这样做;所有用户同等对待,提供同样的信息。创建一个Web站点所带来的安全威胁主要与Web服务器软件的(诸多)漏洞有关。攻击者入侵Web站点并不能获取任何敏感信息,因为服务器上保存的信息可以公开查看。所以攻击者往往会修改服务器上的文件,以歪曲Web站点的内容,或者利用服务器的存储容量和带宽传播“非法软件”。

如今的万维网与早期的万维网已经完全不同,Web上的大多数站点实际上是应用程序(见图1-2)。它们功能强大,在服务器和浏览器之间进行双向信息传送。它们支持注册与登录、金融交易、搜索以及用户创作的内容。用户获取的内容以动态形式生成,并且往往能够满足每个用户的特殊需求。它们处理的许多信息属于私密和高度敏感的信息。因此,安全问题至关重要:如果人们认为Web应用程序会将他们的信息泄露给未授权的访问者,他们就会拒绝使用这个Web应用程序。

Web应用程序安全与风险第1张

1-1包含静态信息的传统Web站点

Web应用程序安全与风险第2张

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)。

如今,使用计算机浏览器访问的应用程序的功能越来越多地与使用智能手机或平板电脑访问的移动应用程序的功能重叠。大多数移动应用程序都通过浏览器或定制客户端与服务器进行通信,这些浏览器或客户端大多使用基于HTTPAPI。应用程序功能和数据通常在应用程序用于不同用户平台的各种接口之间共享。

除公共因特网外,组织内部已广泛采用Web应用程序来支持关键业务功能。许多这类应用程序可以访问各种高度敏感的数据和功能。

q 用户可以使用HR应用程序访问工资信息、提供并接收绩效反馈,以及管理人员招聘和纪律处分程序。

q 连接关键体系架构(如Web和邮件服务器)的管理接口、用户工作站及虚拟机管理。

q 用于共享文档、管理工作流程和项目、跟踪问题的协作软件。这些功能通常涉及重要的安全和监管问题,而且组织结构大多完全依赖于它们的Web应用程序内置的控件来实现这些功能。

q 企业资源规划(ERP)软件等业务应用程序,这类应用程序以前使用专用厚客户端应用程序访问,现在则可以通过Web浏览器进行访问。

q 电子邮件之类的软件服务,这类服务最初需要独立的电子邮件客户端,现在可以通过Web接口(如Outlook Web Access)访问。

q 传统的桌面办公应用程序(如文字处理程序和电子表格)已通过Google AppsMicrosoft Office Live等服务转换为Web应用程序。

为降低成本,组织逐渐将各种任务外包给外部服务提供商来完成,因此,在上述所有示例中,我们所认为的“内部”应用程序正日益由外部机构托管。在这些所谓的“云”解决方案中,业务关键功能和数据向数目更庞大的潜在攻击者开放,而组织却越来越多地依赖于不受其控制的安全防御。

大多数计算机用户所需要的客户端软件仅仅是一个Web应用程序,这样的时代即将来临。到那时,用户使用一组共享的协议和技术即可执行各种功能,但随之也会出现各种常见的安全漏洞。

Web应用程序的优点

Web应用程序越来越流行的原因显而易见。若干技术因素已经与主要的商业动机相结合,从而引发了因特网使用方式上的重大变革。

q HTTP是用于访问万维网的核心通信协议,它是轻量级的,无须连接。这一点提供了对通信错误的容错性。应用HTTP,许多传统客户端—服务器应用程序中的服务器无须再向每一个用户开放网络连接。HTTP还可通过代理和其他协议传输,允许在任何网络配置下进行安全通信。

q 每个Web用户都在其计算机和其他移动设备上安装了浏览器。Web应用程序为浏览器动态部署用户界面,不必像以前的Web应用程序那样需要分配并管理独立的客户端软件。界面变化只需在服务器上执行一次,就可立即生效。

q如今的浏览器功能非常强大,可构建内容丰富并且令人满意的用户界面。Web界面使用标准导航和输入控件,可保证用户即时熟悉这些功能,而不需要学习如何使用各种应用程序。应用程序可通过客户端脚本功能将部分处理交由客户端完成,必要时,可使用厚客户端组件任意扩展浏览器的功能。

q用于开发Web应用程序的核心技术和语言相对简单。即使是初学者,也可使用现有的各种平台和开发工具,开发出强大的应用程序,还有大量开源代码和其他资源可供整合到定制的应用程序中。

——摘自《黑客攻防技术宝典:Web实战篇(第2版)》

免责声明:文章转载自《Web应用程序安全与风险》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇基于tensorflow的CNN卷积神经网络对Fasion-MNIST数据集的分类器(1)python相关下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

iOS开发中的这些权限,你搞懂了吗?

写在前面 APP开发避免不开系统权限的问题,如何在APP以更加友好的方式向用户展示系统权限,似乎也是开发过程中值得深思的一件事; 那如何提高APP获取iOS系统权限的通过率呢?有以下几种方式:1.在用户打开APP时就向用户请求权限;2.告知用户授权权限后能够获得好处之后,再向用户请求权限;3.在绝对必要的情况下才向用户请求权限,例如:用户访问照片库时请求...

用HTML,CSS和JavaScript创建iPhone/iPad应用程序

象大多数iPad粉丝和程序员一样,我有一个梦想,那就是如果不需要昂贵的Apple设备,不要繁琐的审批程序,不要为发布应用交钱就能开发iPad 应用程序该多好.现在这个梦想就要实现了,那就是网页应用程序. 那么,怎样才能让网页象看起来象本机程序一样呢?你需要做这些工作: 全屏幕:(去掉浏览器的地址栏和按钮栏);防止窗口滚动和缩放; 响应多点触摸和手势事件;...

十年磨一剑 Delphi再传奇

         新年伊始,英巴卡迪诺公司(Embarcadero)就在其官网发布了“激动人心的RAD Studio2018年发展规划”公告(见下图)。公告中指出,将在于2018年发布10.3.X新版本,新版本兼容Ext JS前端开发,支持快速WEB应用软件开发。这是继去年Delphi正式支持64 位 Linux 服务器应用开发之后又一个重大利好消息。英巴...

Web开发-表单验证

表单验证是Web开发中必不可少的一个环节,用来限制用户输入数据的规范和一致性。那么如何能够简化这一任务,让开发人员通过简单的属性设置就能达到目的呢? FineUI在这一点上也是下足了功夫,比Asp.Net原生的CompareValidator、RangeValidator、RequiredFieldValidator等控件好用多了,眼见为实,下面就来详细...

egg.js jwt 几步实现加解密

1.安装 npm install --save egg-cors egg-jwt 2.配置 // config/config.default.jsconfig.jwt ={ secret: '123456', enable: true, //default is false match: '/jwt', //optional...

用HBuilderX 打包 vue 项目 为 App 的步骤

首先打包你的vue项目生成dist文件夹,教程请移步https://www.cnblogs.com/taohuaya/p/10256670.html 看完上面的教程,请确保你是将: 项目目录下的config文件夹里的index.js文件中,将build对象下的assetsPublicPath中的“/”,改为“./”后,打包生成的dist文件。 开始使用HB...