基于J2EE技术的应用系统安全性研究

2014-01-03 02:09刘凡
中国信息化·学术版 2013年4期
关键词:体系结构安全性

刘凡

【摘要】由于互联网的开放性,应用系统的安全问题也越来越被重视。本文从分析J2EE体系结构入手,探讨在系统设计和开发过程中,软件研发人员应注意哪些方面的安全问题,并在系统开发时采取何种安全措施,保证应用系统的安全性。

【关键词】J2EE;安全性;体系结构

【中图分类号】TP309.2 【文献标识码】A 【文章编号】1672-5158(2013)04-0124-01

1、引言

以JAVA平台为核心的J2EE(Java 2 Platform Enterprise Edition】技术因为其”编写一次,随处运行”的特性,方便存取数据库的JDBC(Java DataBase Conneetivity)技术以及能够在Internet应用中保护数据的安全模式,对Java Servlet API,JSP(Java Server Pages)和XML(Extensible MarkupLanguage)技术的全面支持等等,被广泛应用于各种B/S架构的应用系统建设中。

由于互联网的开放性,基于B/S架构的应用系统的攻击易于受到入侵和攻击,造成篡改系统页面,窃取系统数据或者植入恶意代码,致使应用系统无法正常运行的危害。

2、J2EE技术的体系结构

J2EE技术的体系结构如图2所示:

J2EE技术的体系结构分成四个部分:客户层,Web服务层,应用服务层,数据服务层。

从J2EE技术的体系结构分析而看用户对应用系统的访问分为四个处理步骤完成,数据在客户层、Web服务层、应用服务层、数据服务层四层之间进行传递和处理,其中客户端通过网络将数据传递至Web服务器,然后由Servlet引擎和JSP引擎对传递的数据进行解释和分析,把用户的输入发送给运行在业务服务层上的EJB组件来进行进一步的业务处理,最后通过JDBC与数据服务层的数据库进行数据交换,并且将处理的结果返回给用户。Web服务层组件和业务服务层组件都运行在J2EE服务器上。

因此,应用系统的安全需要考虑以下几个方面:数据传输的安全,Web服务器的安全,脚本编程的安全。

3、基于J2EE技术的应用系统存在的安全问题及安全措施

3.1 数据传输安全

在对J2EE技术的体系结构分析时,我们知道用户与Web服务器的通信,使用的是各种网络传输协议来传输数据。但是,由于网络传输的公共性,数据在传输过程中可能被攻击者中途截获或篡改,给公司带来风险和损失,因此应用系统的安全性必须考虑网络数据传输的安全,而采用SSL(Secure Sockets Layer)协议是目前比较安全有效的处理方法。

SSL是一种保证网络上的两个节点进行安全通信的协议,使用加密技术实现在网络上会话双方数据的安全传递。其基本原理是:数据从一端发送到另一端时,发送者先对数据加密,然后再把它发送给接受者。这样,在网络上传输的是经过加密的数据。如果有攻击者在网络上非法截获了这批数据,由于没有解密的秘钥,就无法获得真正的原始数据。接受者接到加密的数据后,先对数据解密,然后再进行处理,从而保证了数据传输中的安全性。

3.2 Web服务器的安全

Web服务器的安全问题主要是防范DoS攻击,其目的是使计算机或网络无法提供正常的服务。

DoS攻击主要基于TCP/IP协议通过网络进行攻击,因此首先需要网络管理员在网络上采取大量的预防措施,防止DoS攻击带来的服务不能效应。而对于J2EE平台来说,Web服务器的安全配置也是我们防止DoS攻击的一道防线,即可防范黑客用户的恶意攻击,也可防止用户无限制开启多个并发线程,使得系统很快达到HTTP的最大连接数,堵塞网络,导致系统无法正常运行。

3.3 编程的安全

3.3.1 用户输入的安全

用户输入的安全主要是指SQL(Structured Query Language)注入,所谓sQL注入,就是通过把sQL命令插入到Web表单或页面请求的查询字符串,欺骗服务器执行恶意的sQL命令,达到窃取系统数据或者非法入侵系统的目的。

预防此类攻击的安全措施如下:

1.对用户的输入进行校验,限制用户输入长度;对特殊符号进行转换或者屏蔽输入等。

2.使用参数化的sql或者直接使用存储过程进行数据查询存取。

3.不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。

3.3.2 页面的访问控制

通常,用户须输入了正确的用户名和口令成功登录应用系统,才能访问普通用户不能访问的包含公司重要数据的页面。然而如果软件开发人员在编程时考虑不周全,对所有的页面不进行适当的访问控制,非法用户就可直接在浏览器地址栏中输入重要页面的URL来访问该页面,绕过了登录界面直接进入应用系统,获取系统数据,给系统安全造成了威胁。

解决这个问题需要利用JAVA提供的过滤器机制以及Session对象。在用户登录成功后,就把用户名存入会话的Session变量中,然后通过过滤器将用户需要访问的资源进行拦截。这样,用户访问系统页面时必须先进行验证,在过滤器中我们先读取Session变量,判断用户是否存在,不存在则证明用户还没有登录,将用户请求重定向到登录页面。

4、结束语

在IT技术高速发展的今天,应用系统的安全已变得至关重要。保证应用系统的安全性,抵御非法用户的入侵和攻击,系统设计与开发人员必须了解和掌握所使用的开发平台的基础架构,熟悉网络传输协议,采用适当的安全的网络传输协议和编程规范,才能保证应用系统的安全,确保其稳定运行。

猜你喜欢
体系结构安全性
基于思维导图的化学知识体系结构构建
长效胰岛素联合口服降糖药治疗2型糖尿病的疗效与安全性
软件通信体系结构(SCA)理念下的无线通信系统探究
西药临床应用中合理用药对其安全性的影响
关于桥梁设计中的安全性与耐久性问题的几点思考
认知无线网络中的重点技术和研究
全氢罩式炉的安全性