Web应用程序与远程过程调用的安全剖析
1. Web应用程序概述
人们最依赖的应用程序,如银行和电子商务应用,大多是Web应用程序。与自定义协议相比,基于Web的应用程序通过Web服务器(表示层)过滤用户输入,并通过浏览器呈现给用户,显著减少了应用程序的暴露面积。然而,使用无状态、非连接性的HTTP协议作为应用基础也存在弊端。一方面,HTTP允许Web应用采用一致的方法过滤用户输入;另一方面,在无状态协议上维护状态增加了Web应用的复杂性,这往往成为其弱点。此外,业务逻辑和后端数据库严格分离,导致在某一层看似无害的数据验证错误,在另一层可能是致命的。
1.1 Web应用程序架构分类
目前,Web应用程序架构主要分为两大类:
- IIS、.ASP、MSSQL 组合 :通常用于中小型企业。
- iPlanet(现称 Sun ONE)、WebLogic/WebSphere、Solaris、Oracle 组合 :大型企业更倾向于这种基于UNIX(通常是Solaris)的J2EE解决方案,以获得可扩展性和可靠性。
这些分类围绕“应用服务器”展开,应用服务器为开发团队提供API,涵盖状态管理、动态编译脚本语言、数据库访问API、针对目录服务器或其他认证存储的认证以及各种加密例程。
1.2 Web应用程序的三层网络结构
Web应用程序通常设计为三层网络结构,虽然用户浏览器可视为第四层,但这里暂不考虑。一个常见的误解是,认为只要第一层(表示层,通常运行在IIS或iPlanet上)未被攻破,数据库信息就是安全的。实际上,即使数据库中的信
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



