您现在的位置:计算机技术学习网 > 技术中心 > WEB编程 > JSP >

JSP应用程序开发中安全问题的实例解析

来源:未知 责任编辑:智问网络 发表时间:2013-11-08 08:46 点击:

选择自 hf1650 的 Blog

 一、概述

  当网络编程越来越方便,系统功能越来越强大,安全性却指数倍地下降。这恐怕就是网络编程的不幸和悲哀了。各种动态内容生成环境繁荣了WWW,它们的设计目标就是为了给开发者更多的力量,给最终用户更多的方便。正因为如此,系统设计师和开发者必须明确地把安全问题作为一个考虑因素,事后追悔很难奏效。

  从安全的角度来看,服务器端WWW应用的弱点来源于各种各样的交互能力和传输通道。它们是攻击者直接可以用来影响系统的工具。在攻击者寻找和利用系统安全漏洞时,它们总是给系统安全带来压力。对付所有这些攻击的通用防卫策略就是所谓的输入验证。

  从同一层面考虑,主要有两种设计上的错误导致了安全方面的问题:

· 拙劣的访问控制。

· 对部署环境作隐含的假设。

  在有关安全的文献中,针对访问控制问题有着许多深入的分析。这里我们要讨论的是底层实现(代码和配置)上的安全管理问题,讨论的环境是jsp(SUN企业级应用的首选)。或者说,我们将讨论恶意的用户输入伪装自身以及改变应用预定行为的各种方法,考虑如何检验输入合法性以及减少对信息和应用接口的不受欢迎的探测。

  二、jsp(SUN企业级应用的首选)概述

  jsp(SUN企业级应用的首选)技术允许把Java代码逻辑嵌入到HTML和xml(标准化越来越近了)文档之内,为创建和管理动态WWW内容带来了方便。jsp(SUN企业级应用的首选)页面由jsp(SUN企业级应用的首选)引擎预先处理并转换成Java Servlet,此后如果出现了对jsp(SUN企业级应用的首选)页面的请求,Web服务器将用相应的Servlet输出结果作为应答。

  虽然jsp(SUN企业级应用的首选)和Servlet在功能上是等价的,但是,和Servlet相比,jsp(SUN企业级应用的首选)的动态内容生成方法恰好相反:jsp(SUN企业级应用的首选)是把Java代码嵌入到文档之中,而不是把文档嵌入到Java应用之中。为访问外部功能和可重用的对象,jsp(SUN企业级应用的首选)提供了一些用来和JavaBean组件交互的额外标记,这些标记的语法和HTML标记相似。

  值得注意的是:HTML语法属于jsp(SUN企业级应用的首选)语法的一个子集(一个纯HTML文档是一个合法的jsp(SUN企业级应用的首选)页面),但反过来不一定正确。特别地,为了便于动态生成内容和格式,jsp(SUN企业级应用的首选)允许在标记之内嵌入其他标记。例如,下面是一段合法的jsp(SUN企业级应用的首选)代码:


<A HREF = "<%= request.getRemoteUser() %>">
 

  从本文后面可以看到,这种结构增加了安全问题的复杂性。

  与CGI相比,jsp(SUN企业级应用的首选)具有更好的性能和会话管理(即会话状态持久化)机制。这主要通过在同一个进程之内运用Java线程处理多个Servlet实现,而CGI一般要求为每一个请求分别创建和拆除一个进程。

  三、安全问题

  由于完全开放了对服务器资源的访问,从jsp(SUN企业级应用的首选)页面转换得到的不安全Servlet可能给服务器、服务器所在的网络、访问页面的客户机之中的任意一个或全体带来威胁,甚至通过DDoS或蠕虫分布式攻击,还可能影响到整个Internet。

  人们往往假定,Java作为一种类型安全的、具有垃圾收集能力的、具有沙箱(Sandbox)机制的语言,它能够奇迹般地保证软件安全。而且事实上,许多在其他语言中存在的低层次安全问题,比如缓冲或堆溢出,很少给Java程序带来危害。

  然而,这并不意味着人们很难写出不安全的Java程序,特别是对编写Servlet来说。验证输入和控制对资源的访问是始终必须关注的问题。另外,jsp(SUN企业级应用的首选)的体系结构相当复杂,其中包含许多相互协作的子系统。这些子系统之间的交互常常是安全隐患的根源。

  除此之外,虽然现在所有的jsp(SUN企业级应用的首选)实现都围绕着Java,但jsp(SUN企业级应用的首选)规范允许几乎所有其他语言扮演这个角色。这样,这些替代语言的安全问题也必须加以考虑。

  简而言之,在jsp(SUN企业级应用的首选)系统中产生安全漏洞的机会是相当多的。下面我们将讨论它们中最常见的一部分。

  四、非置信用户输入的一般问题

  非置信的用户输入(Untrusted User Input)实际上包含了所有的用户输入。用户输入来源于客户端,可以通过许多不同的途径到达服务器端,有时甚至是伪装的。为jsp(SUN企业级应用的首选)服务器提供的用户输入包括(但不限于):

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • JSP与Servlet
    • 自己动手写MiniBBS系列(基本篇)之用户登录
    • JSP取当前日期
    • JDBC 入门(一)
    • 打开一个jsp页面默认查询所有数据,调用action
    • 使用JSP标签库验证用户的输入(2)完
    • 自定义JSP标签(tag)浅议
    • WIN98/2000下的jsp服务器
    • JSP内建对象(二)
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1