一种新的细粒度URL权限管理方法

2014-02-08 10:23岳康军周红专
湖南邮电职业技术学院学报 2014年2期
关键词:细粒度配置文件粒度

岳康军,周红专

(湖南省通信建设有限公司,湖南长沙 410000)

一种新的细粒度URL权限管理方法

岳康军,周红专

(湖南省通信建设有限公司,湖南长沙 410000)

通过分析Web应用中URL安全管理的局限性,提出了一种利用Struts2开发框架的配置变量namespace来管理URL权限的方法。首先读取用户自定义的配置文件,匹配授权角色和登录角色,再次调用解析算法解析操作权限值来匹配授权操作和请求操作。只有当两者都匹配成功,才允许用户正常访问。实验表明,该方法既能满足一般的URL权限管理,还能根据用户需求自定义权限控制的粒度来管理操作权限,且支持权限管理可配置,是一种通用的URL管理工具。

Web应用;URL技术;权限管理;算法匹配;粒度

随着Web应用的迅速发展,在Web应用开发中,安全问题越来越受到关注[1]。在Web开发的安全问题中,权限控制显得尤为重要,也是最基本的安全机制。基于URL(uniform resource locator)的各种攻击行为最为常见,它对系统数据的安全性的威胁很大。因此,加强URL攻击的防范工作,对加强系统权限控制的管理研究至关重要。针对URL及访问方法的权限管理是在角色管理的基础上对系统更深一层次的安全保护和权限控制。

目前已经提出了一些URL权限管理的方法,如文献[2]针对URL攻击提出了一种安全链接的生成和验证方法,它通过提取目标链接和鉴别码,利用散列算法生成新的鉴别码,判断URL是否被篡改达到防止URL攻击行为的目的。但其新鉴别码生成算法的计算复杂度较高,增加了算法的开销。文献[3]提出一种利用快速匹配算法分析用户请求信息合法性的方法,该方法通过分析并检查用户请求URL是否为网站黑名单中的数据,来判断用户请求的合法性。它依赖于系统的URL黑名单范围,权限管理的灵活性和控制范围受到了限制。

基于以上URL权限管理方法的不足,本文提出一种Web开发中基于Struts2框架[4-5]的URL权限管理方法。该方法相比于其他权限管理方法,主要的改进之处有:1)利用Struts2配置文件中的命名空间变量进行分级权限控制;2)权限管理的粒度灵活,可根据用户需求自定义;3)支持对操作权限的控制,如查询、增加、修改、删除等;4)支持权限管理可配置,可以升级为通用的URL管理插件。

1 URL权限管理

一般的URL权限控制可以分为以下几个阶段:

第一,确定权限控制的范围。

系统在需求分析阶段,将初步定义系统角色及其他各个角色的权限范围。特别是对于安全性要求高的系统,系统安全方面的分析与设计对系统数据的保护至关重要,影响到系统的整体价值。在开发阶段,开发者将需求阶段设计好的角色及附有权限与系统模块功能综合考虑,可以实现初步的角色权限控制[6-7]。在需求分析阶段,角色一旦确定好,一般情况下,在后期是不允许随便更改的。

第二,权限验证。

权限验证是权限管理的核心。当用户发出URL请求时,首先进行的是角色权限的授权验证[8]。如果有对应的访问权限,则允许其正常访问;否则跳转至权限不足提示页面。一般的权限控制可用自定义的过滤器(Filter) 或者开发框架中的配置文件管理来实现,但是由于控制变量的选择不恰当,或者控制方法的设计不合理,不能较灵活地实现细粒度权限的管理。在实际应用时,URL权限判断中参数的多样性及控制的复杂性降低了权限检查的执行效率,特别是当系统需要独立控制多级菜单时,一般的URL权限控制方法难以满足其要求,存在一定的局限性。

第三,处理验证结果。

对于安全性要求比较高的B/S系统,URL权限的控制是不可或缺的。为了避免非法URL对系统的访问,开发者一般选择拦截器进行第一层安全检查。用户只有填写正确的登录信息后才能访问系统赋予该用户的功能模块。当一个非法的URL链接试图在地址栏直接访问系统时,系统将行使拦截功能,促使访问用户正常登录。

一般的URL权限验证结果有以下几种处理情况:

1)若用户未登录,先转到登录页面,提示用户先登录。

2)若未经过登录校验器验证通过,提示用户登录信息错误。

3)若经过登录校验器验证通过,则进一步判断登录用户是否具有URL链接模块的操作权限。具有相应的操作权限才允许正常操作,否则拦截请求。

2 URL权限管理的改进思想

基于一些可行的URL分类管理方法[9-10],本文提出的改进方法可分两个层次判断用户的访问权限:第一,读取配置文件,获取请求对应的授权访问角色及授权操作信息。如果会话中事先保存了登录角色,则匹配授权角色,没有保存,则根据登录用户信息访问数据库提取对应的角色信息,匹配成功后进入下一层验证,否则由用户选择重新登录或者退出访问;第二,获取登录用户对应的授权操作信息,使用特定算法解析权限值得到操作权限列表,匹配操作权限列表是否包含请求的操作动作,匹配成功则允许执行该操作,否则系统提示操作权限不足。改进方法的总体流程图和具体权限判断流程图分别如图1和图2所示。

图2 URL授权验证流程图

改进思想主要体现在以下几个方面:

2.1 利用框架配置文件中的命名空间变量进行分级权限控制

URL权限控制一般通过用户自定义的过滤器进行配置管理,具有一定的局限性。本文提出利用Struts2配置文件的命名空间变量namespace进行分级控制,根据权限进行模块分类,自定义namespace控制范围,namespace名称与用户定义的URL权限的属性文件相对应。达到分级控制URL权限的目的。

Module Name=role1#operate Value1 /role2#operateValue2, 其中,ModuleName 与配置文件中的namespace 名称一致,role 表示授权角色名称,可以并行授权多个角色,operateValue 表示授权角色拥有的操作权限值。namespace 可以从请求URL 中获得,根据请求信息中解析获得的namespace 找到属性文件中与其一致的授权信息,用来控制对应角色的操作范围。这种定义方式对于一个权限模块支持多个角色的互不相同的操作控制,大大增加了控制的多样性和独立性。

2.2 权限管理的粒度灵活

一般的URL权限判断局限在系统的二级菜单验证中,对于三级及以上,甚至针对操作动作等更细粒度的URL权限控制一直没有一个很好的解决方法。在本文的思想上,可以根据权限将管理模块分类,自定义控制范围,确定权限管理的粒度大小。将同一管理模块内相同权限的配置项集中在一个命名空间下。同理,根据用户的实际需要,还可以将子模块进行细分。一个命名空间管理的请求越少,粒度越小,但是不建议无限扩展粒度,这样做将造成权限管理效率极快的降低。一般建议将粒度控制在三级菜单左右,这种粒度大小已能满足大多数系统的权限管理需求。

2.3 支持对操作权限的控制

本文提出的方法增加了对操作权限的管理。在处理请求数据前,先判断操作用户是否具有请求的操作权限。通过逐个匹配操作权限列表,检查是否被授权用户请求的操作。匹配成功则允许执行操作,否则,提示请求的操作权限不足。这种对操作权限的管理一方面能够防止系统中重要的数据被偶然修改,另一方面为系统的安全性添加了另一层保护。

具体的解析算法程序如下:

2.4 支持权限管理可配置

可以将程序的具体实现部分封装起来,通过提供一系列外部接口和定义特定格式的配置文件,升级为一个通用的URL管理插件,应用到不同的项目中,既能提高代码的重用率,又可以提高大型系统的开发效率。调用者按照预先约定的格式填写属性文件内容,内容以列表的形式展现,每一行表示一个控制模块。这种支持配置的URL权限管理方法仅需要获得普通的请求参数,结合自定义的框架配置文件,就可以实现高效、快捷、准确的细粒度的URL权限管理。

3 实验及分析

3.1 实验环境

操作系统:Windows 2003 Server;

Web服务器:tomcat-apache-6.0;

开发语言:Java;

工具:eclipse;

后台DBMS:Navicat_for_MySQL_9.0。

3.2 实验设计

1)对角色权限的判断

实验以一个自己开发的求职管理系统为例。求职管理系统主要有个人求职管理和公司招聘两个模块,规定角色A未授权访问公司招聘模块,角色B未授权访问个人求职模块。当角色A通过盗取访问链接非法访问公司招聘模块时,本文提出的URL权限管理方法通过分析登录用户的信息能够识别出该用户是否有访问权限。当识别出请求用户不具有访问权限时,系统自动跳转至权限不足的提示页面,如图4所示。

2)对操作权限的判断

当请求用户成功通过第一层权限验证,进一步对系统数据进行相关操作如查看、增加、修改、删除等操作时,本文提出的方法会进行第二层的权限判断。首先读取访问角色对应的操作权限值,通过算法解析获得权限列表。只有授权列表中包含的操作项才能供合法访问者操作,未授权的操作项对访问者是隐藏的。例如实验中,属性文件中定义的角色A对应的操作权限值解析成列表后,其中包含删除操作,测试页面如图5所示,页面中会将红色的删除图标显示给用户。一旦修改属性文件中角色A的操作权限值,使其不具有删除操作权限时,系统自动将访问页面的删除图标隐藏起来,如图6所示。

3.3 修改控制粒度

如果需要进行控制粒度的调整,只需要修改Struts2配置变量namespace对应的请求范围。合并两个及以上个namespace管理的请求到一个大范围内,则将粒度调大;在原有的基础上细分命名空间管理的请求,则将控制粒度调小。本文提出的方法能够以作尽量小的修改达到用户对权限粒度大小的调整。

实验表明本文提出的URL权限管理方法能准确、快速、便捷的进行自定义粒度的URL权限控制,对操作权限也进行了有效的管理。无需大量修改源代码,通过修改自定义配置文件就可以完成URL及操作权限的需求变更,这样既改善了权限管理的灵活性,也在一定程度上提高了大型项目的开发效率。

4 结语

为了改进Web应用的安全机制,本文提出了一种便捷、高效、可配置粒度的URL权限管理方法。它基于Struts2框架的配置文件,达到利用命名空间namespace对系统模块的分级、分类控制来实现粒度可配置的URL权限管理的目标。这种权限管理方法在普通的URL管理上,一方面增加了对操作权限的控制;另一方面封装具体实现细节,通过用户自定义配置文件和调用外部接口,可以应用于不同项目的URL权限控制。由于这种方法受限于Struts2框架的开发环境,所以下一步的工作是如何将URL权限管理升级成一个不受限于开发环境,效率更高、更加通用的URL管理插件。

[1] 徐兵,谢仁义.Web应用程序会话安全模块的设计[J].计算机工程,2008,34(19):176-178.

[2] 杜恩宽. URL攻击防范和细粒度权限管理的安全连接方法[J].计算机应用,2009,29(8):2230-2232.

[3] Gao Fuxiang,Wang Yanyan,Shen Wenjun,Yao Lan. Design and Implementation of the Web Access Monitoring System Based on URL Analysis[J].IEEE,2010,287(1):425-428.

[4] (加)Budi Kurniawan.Struts2 Design and Programming:A Tutorial[M].杨涛,王建桥,杨晓云,译.北京:人民邮电出版社,2009.18-27.

[5] 王海涛,贾宗璞.基于Struts和Hibernate的Web应用开发[J].计算机工程,2011,37(9):112-114.

[6] 高大利,孙凌,辛艳.基于角色-权限的普适计算受限委托方法[J].计算机应用,2011,31(5):1298-1301.

[7] 黄箐,马德山,项链.基于角色的安全登录框架设计与实现[J].西北民族大学学报,2008,29(1):33-38.

[8] 陈钦,原焕,冯建华.企业检索中访问权限控制方法的实现与比较[J].计算机应用,2009,29(7):2000-2002.

[9] Zhixiao Zhang,Guoqing Dong,Zhaohui Peng,Zhongmin Yan.A Framework for Incremental Deep Web Crawler Based on URL Classification[J].Lecture Notes in Computer Science, 2011(6988): 302-310.

[10] Egan,S.,Irwin,B.An evaluation of lightweight classification methods for identifying malicious URLs[J]. Information Security South Africa (ISSA),2011:1-6.

A new fine-grained URL rights management method

YUE Kang-jun, ZHOU Hong-zhuan
(Hunan Telecommunication Construction Co., LTD, Changsha, Hunan, China 410000)

By analyzing the limitations of URL safety management in Web applications, this paper proposes a method to manage URL rights using configuration variable namespace of Struts2 framework. Firstly, user-defined configuration files are read to match the log role and request role, then analytical algorithm is used to parse the operation rights value to match the permit operator and request operator. Only the two matches successfully can users be allowed to access normally. The experiment shows that this method can not only meet the general URL rights management, but also according to users’ needs, customize the granularity of access control to manage the operation rights. It also supports the configuration of the rights management and is a common management tool.

Web application; uniform resource locator(URL) technology; rights management; algorithm for matching;granularity

10.3969/j.issn.2095-7661.2014.02.013】

TP9311.52

A

2095-7661(2014)02-0052-06

2014-04-01

岳康军(1963-),男,湖南新邵人,湖南省通信建设有限公司总经理,工程师,研究方向:通信工程、软件开发等。

猜你喜欢
细粒度配置文件粒度
融合判别性与细粒度特征的抗遮挡红外目标跟踪算法
粉末粒度对纯Re坯显微组织与力学性能的影响
基于SVM多分类的超分辨图像细粒度分类方法
互不干涉混用Chromium Edge
基于Zookeeper的配置管理中心设计与实现
忘记ESXi主机root密码怎么办
为View桌面准备父虚拟机
基于web粒度可配的编辑锁设计
基于粒度矩阵的程度多粒度粗糙集粒度约简
支持细粒度权限控制且可搜索的PHR云服务系统