,欢迎光临!
加入收藏设为首页请您留言
您当前位置:网站首页 >> 华东地区 >> 一种基于过滤技术的访问控制方案设计-上海联兵环保免费电话:400-600-5030

一种基于过滤技术的访问控制方案设计-上海联兵环保免费电话:400-600-5030

2011-09-14 10:03:59 来源:中国过滤器网 浏览:1
摘要:网络安全对于Web应用尤为重要,为了改进Web应用中访问控制方法,提高Web应用的安全性和效率,在分析“用户-角色-资源”模型不足的基础上,结合过滤技术的应用,提出了“用户-权限-限制”模型,给出了该模型的表示方法:用户信息采用关系数据库存储以利于管理;权限信息采用XML文件存储便于表示和维护;限制表示成路径容易体现资源集合的层次关系。同时,基于过滤技术,给出了访问控制的实现方案。所给出的模型和实现方法具有管理维护方便、验证效率高、实用性强等特点。

    关键词:访问控制;模型;XML;过滤技术

    中图分类号:TB311 13文献标识码:A文章编号:1004 8626(2007)02 0066 03

    虽然安全性是所有应用程序都十分关注的方面,但是它对于Web应用程序尤为重要。不安全的Web应用程序使Web站点易受多种攻击,而且有些攻击仅仅需要一个Internet浏览器和少量相关知识即可。控制客户端访问是保证Web应用安全最重要的方面,本文结合网站开发研究JavaWeb应用中的一种基于过滤技术的角色验证方案。

    1 访问控制模型

   解决访问控制一般从用户、角色、资源的关系出发来思考。角色是授予用户的权限集合,它支持站点,允许特定的用户访问站点的不同部分。每个用户可以拥有一个或多个角色,每个角色限定了可访问的Web资源。一个用户可以访问其拥有的所有角色对应的Web资源[1]。这种模型我们称为“用户—角色—资源”模型。通过分析发现,这种模型在具体应用中存在如下问题:

    1)关系复杂。因为无论在用户和角色间,还是在角色与资源间,都存在多对多的关系,维护起来比较复杂。

    2)因为关系复杂,确认用户权限的验证效率也受到一定的影响。

    实际上,Web应用资源一般都是以树型目录形式组织的,资源中存在层次关系,用户和资源的关系更多体现在访问关系。这与现实世界中的访问情况很类似,比如,某个人来到学校,他首先经过校门这一关,进来后,如果想进入到哪个楼,还要再经过某楼门卫,然后才能看看能不能进到哪个办公室。如果在校门这一关没通过,也就不用再考虑其他的入口。这种验证机制的主要特点是:

    1)验证主要是限制性,也就是说,进入每个入口,看看对进入者是否有限制。

    2)限制是层次性的。越是在上层,限制访问的资源越多。用户和角色之间存在一种关系,这就是权限。在进行访问控制时,我们所划分角色的集合实际上就是权限,这种集合可以是交叉的。用户和权限的关系是多对一的关系。资源也用集合来表示,这种集合是一种层次关系的集合。资源的总和是树的根,它表现为网站的根目录,子集合表现为子目录和具体的文件。角色和资源的关系是限制,限制表现为资源子集的集合,具体表现为网络路径树的支或叶的集合。例如,有图1所示的路径树。

                        

     我们可以这样来表示权限:权限名{限制1,限制2,…},例如:权限1{AB,ACF}。其中AB和ACF都是一种限制,AB限制的范围要比ACF限制的范围大,权限1只能访问资源G。类似地,还可以有权限2{ABE,ACG}。用户A具有权限1,用户B具有权限2,两个用户也可以具有同样的权限,但一个用户只能有一种权限。

    根据上述分析,我们抽出一种新的模型:“用户—权限—限制(由层次表示的限制的集合)”模型,这种模型更便于技术的实现,也有利于提高效率。

   为了方便管理,用户信息采用关系数据库存储,便于管理;权限信息采用XML文件存储,便于表示和维护;限制表示成路径,容易体现集合的层次关系。

    权限与限制模型(XML文件的DTD文件内容)如下:

                   

                   

    2 访问控制实现

    2 1 Servlet过滤器技术

   控制客户端访问有几种策略,如可以加入一种应用逻辑,每当控制器或者视图被处理时,就运行这一逻辑,这样就限制了用户访问,也可以配置运行系统,在某些资源被访问之前,必须要通过另一种应用资源的内部调用才能完成。比较好的策略是引入一个集中的控制器来负责处理访问控制的检查工作[2]。因为第一种方式对于大量JSP视图就变得难以维护。集中的控制不仅便于维护也便于管理。采用集中控制可以使用过滤器。

    支持JavaServlet规范2 3的Servlet容器,都支持过滤器,过滤器能够对Servlet容器的请求和响应对象进行检查和修改。Servlet过滤器本身并不生成请求和响应对象,它只提供过滤作用[3]。图2表明了Servlet过滤器的过滤过程。

                     

     一个执行过滤器的Java类必须实现javax servlet Filter接口。这一接口含有3个过滤器必须执行的方法:

   1)doFilter(ServletRequest,ServletResponse,Fil terChain):这是一个完成过滤行为的方法。这同样是上游过滤器调用的方法。引入的FilterChain对象提供了后续过滤器所要调用的信息。

    2)init(FilterConfig):这是一个容器所调用的初始化方法。它保证了在第一次doFilter()调用前由容器调用。您能获取在web xml文件中指定的初始化参数。

    3)destroy():容器在破坏过滤器实例前,do Filter()中的所有活动都被该实例终止后,调用该方法。

    为了使用过滤器,需要在web xml文件进行配置,在<web-app>标记中加入子标记<filter>标记和<filter-mapping>标记。<filter>标记是一个过滤器定义,<filter-mapping>标记代表了一个过滤器的映射,指定了过滤器会对其产生作用的URL的子集。例如:

                 

   2 2 访问控制实现机制

   把系统的资源分为可直接访问和不可直接访问两个部分,不可直接访问的资源,要经过过滤,并要求用户先登录才能访问。用户登录时,通过一个JavaBean在数据库检索该用户,如找到表明登录成功,并将该用户对象存在Session对象中。登录后访问不可直接访问资源时,过滤类来验证用户的访问是否被允许。下面重点简述以下过滤类的实现。

    1)在init方法中,首先读取XML文件,将权限读到内存,存放在Hashtable对象中,Hashtable对象最后保存在ServletContext对象中。

                    

                    

    3 结 语

    不同的访问控制技术直接影响访问控制的效率,本文所提出的方案便于实现,便于管理。以XML表示的权限模型,很容易维护,便于网站的权限规划,采用过滤器方式的集中控制,也有利于对用户访问的全方位控制,增强了网站的安全性,具有管理维护方便、验证效率高、实用性强等特点。

    本方案在网络教学系统中已得到应用,做过原理性验证,证明本文方案原理可行,有些问题还有待进一步探讨。

 

上海联兵环保科技有限公司
地址:上海市松江区工业区茸北分区茸阳路69号
总机:021-51691929
传真:021-57784244
免费电话:400-600-5030
技术支持:13641659499
E-mail:zhanglianbing@126.com
http://www.shlbhb.com

发表评论
网名:
评论:
验证:
共有0人对本文发表评论查看所有评论(网友评论仅供表达个人看法,并不表明本站同意其观点或证实其描述)
赞助商链接
关于我们 - 联系我们 - 咨询联兵