CN102682240B - 大型bs结构系统中对资源的控制方法 - Google Patents
大型bs结构系统中对资源的控制方法 Download PDFInfo
- Publication number
- CN102682240B CN102682240B CN201210151182.3A CN201210151182A CN102682240B CN 102682240 B CN102682240 B CN 102682240B CN 201210151182 A CN201210151182 A CN 201210151182A CN 102682240 B CN102682240 B CN 102682240B
- Authority
- CN
- China
- Prior art keywords
- function
- menu
- authority
- url
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供一种大型BS结构系统中对资源的控制方法,主要在于如何判断是否有权限访问URL:如果菜单ID为空,表示该URL不在权限控制范围之内,通过,否则继续下一步;根据菜单ID和用户ID取出对应的权限列表,如果列表为空,则表示用户无此权限,转向权限错误页面,否则继续下一步;根据菜单ID取出菜单所有功能列表,如功能英文码不在此列表内,表示此功能不在功能控制之内,只要用户有此菜单的查看权限即可,通过,否则继续下一步;判断第二步得到的权限列表中是否包含功能英文码代码的功能,如果有则通过,否则转向权限错误页面。该方法能够将权限控制的代码进行集中,同时降低代码复杂度,有效杜绝资源漏控现象。
Description
技术领域
本发明涉及一种资源控制方法,具体的说,涉及了一种大型BS结构系统中对资源的控制方法。
背景技术
在任何一个大型BS结构系统开发过程中,都要涉及对用户的权限管理,目前通常使用的方法有两种,一是直接用户-权限,另一种是用户-角色-权限,但无论哪种方法都离不开对权限的定义,即对系统中的各种资源进行分解和定义。
目前通常采用的方法是将资源定义为一个字符串标识,通过该字符串能够唯一确定一种操作权限,这个权限可能是某个按钮是否可见,亦或对某些重要数据能否修改,软件开发人员在软件开发时就对权限进行定义,在编码过程中调用权限验证的代码进行判断。
这类资源控制方法有着较大的缺陷,具体分析如下:1、权限控制过于分散:在系统的开发过程中,开发人员不仅要关于业务及流程,同时也要对各种权限进行定义和控制,权限控制代码分散在系统的各个模块中,不能进行集中管理,导致权限控制过于随意化,不易做到统一管理,当模块间出现相互调用时将会出现权限不易界定的现象。2、增加了代码复杂度:因为权限部分只负责根据用户所拥有的权限对当前权限进行判定,所以软件开发人员就要编写大量的逻辑判断代码,导致系统中存在大量的判断和分支结构,增加了代码的逻辑复杂度,同时也加大了系统bug出现的概率。3、容易发生资源漏控:在系统应用的过程中,通常会分为用户界面(UI)和后台数据操作两部分,为了增强用户的体验,就需要将权限的控制在用户界面(UI)和后台数据操作进行双重控制,增加了开发人员的工作量。更有一些系统,只对用户界面进行了控制,未对后台的数据操作进行控制,这样就不可避免模拟URL访问对系统的资源进行修改,达不到保护数据安全性的目的。4、维护性差:在管理信息系统中,系统的功能一般情况下是按照菜单进行划分的,而在定义权限时只是对应的一个个特定字符串,与菜单无任何直接关系,给权限分配人员增加了维护难度。
为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。
发明内容
本发明的目的是针对现有技术的不足,从而提供一种大型BS结构系统中对资源的控制方法,该控制方法能够将权限控制的代码进行集中,同时大大降低代码复杂度,有效杜绝资源漏控现象,提高权限维护界面的人性化和维护效率。
为了实现上述目的,本发明所采用的技术方案是:一种大型BS结构系统中对资源的控制方法,在于:系统中设置功能菜单,菜单为树型结构,每个菜单对应一些功能的组合,每个菜单有1个以上的功能,每项功能有名称和功能英文码;
系统使用Struts2框架处理用户请求,在编写Action类时遵循以下规则:在菜单中定义的功能项,在Action类中要以英文简称作为方法名;对于同一功能有多于1个页面时,要在同一个方法内进行逻辑判断和处理;在系统中增加权限判断的Filter,对请求URL进行分析并过滤,此时URL由基础URL+功能英文码+其它参数组成,首先将URL进行分解,分解出基础URL和功能英文码,通过基础URL在菜单中查找对应的菜单,然后根据菜单+功能英文码+当前登录用户信息判定该用户是否有权限访问URL,在判断时根据以下顺序:
步骤1、如果菜单ID为空,表示该URL不在权限控制范围之内,通过,否则继续下一步;
步骤2、根据菜单ID和用户ID取出对应的权限列表,如果列表为空,则表示用户无此权限,转向权限错误页面,否则继续下一步;
步骤3、根据菜单ID取出菜单所有功能列表,如功能英文码不在此列表内,表示此功能不在功能控制之内,只要用户有此菜单的查看权限即可,通过,否则继续下一步;
步骤4、判断步骤2得到的权限列表中是否包含功能英文码代码的功能,如果有则通过,否则转向权限错误页面。
本发明相对现有技术具有突出的实质性特点和显著进步,具体的说,该方法有以下优点:
1、将权限控制代码集中,减少代码污染:采用本方法后,只需在菜单管理中增加部分代码,在权限过滤器中修改权限验证方法,即可达到对整个系统的所有资源进行控制的方法,将原来分散在各处的权限控制代码集中到一起,让程序员可以专注于业务流程的开发。
2、最大程度上避免资源漏控:本方法对系统的URL进行监控,无论是前台展示还是后台数据保存,都在本方法的控制范围之内,不存在因为程序员漏写了后台验证代码从而导致资源漏控的现象。
3、提高系统权限的可维护性:本方法中将抽象的功能具体到系统菜单上,给系统维护人员以直观的认知,达到了所见即所得的目的,让系统维护人员脱离了菜单-功能-权限对照的重复劳动,提高了系统维护人员的工作效率。
具体实施方式
下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。
一种大型BS结构系统中对资源的控制方法,在于:系统中设置功能菜单,菜单为树型结构,每个菜单对应一些功能的组合,每个菜单有1个以上的功能,每项功能有名称和功能英文码;
系统使用Struts2框架处理用户请求,在编写Action类时遵循以下规则:在菜单中定义的功能项,在Action类中要以英文简称作为方法名;对于同一功能有多于1个页面时,要在同一个方法内进行逻辑判断和处理(如添加包括打开添加页面和保存添加信息两个功能,此时需要根据其它参数对用户请求进行判断并处理);在系统中增加权限判断的Filter,对请求URL进行分析并过滤,此时URL由基础URL+功能英文码+其它参数组成,首先将URL进行分解,分解出基础URL和功能英文码,通过基础URL在菜单中查找对应的菜单,然后根据菜单+功能英文码+当前登录用户信息判定该用户是否有权限访问URL,在判断时根据以下顺序:
步骤1、如果菜单ID为空,表示该URL不在权限控制范围之内,通过,否则继续下一步;
步骤2、根据菜单ID和用户ID取出对应的权限列表,如果列表为空,则表示用户无此权限,转向权限错误页面,否则继续下一步;
步骤3、根据菜单ID取出菜单所有功能列表,如功能英文码不在此列表内,表示此功能不在功能控制之内,只要用户有此菜单的查看权限即可,通过,否则继续下一步;
步骤4、判断步骤2得到的权限列表中是否包含功能英文码代码的功能,如果有则通过,否则转向权限错误页面。
技术原理:JavaEE开发的B/S结构程序,使用Struts2框架处理用户请求。在BS结构的系统中,任何一个功能均对应一个或多个URL,对URL进行控制就控制了系统的入口,用户不可能绕过这道防线对系统进行越权访问。所以通过本方法对URL按指定规则进行限制,最大程度上限制了用户的权限,使系统的权限控制达到了精细化的目的,而且减少了权限管理对系统其它代码的污染。系统中使用Struts2可使系统URL具有明显的可分析性,能够简单的解析出URL所代表的基础URL和功能英文码。但使用其它技术时,将本方法进行稍加改动即可适用。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
Claims (1)
1.一种大型BS结构系统中对资源的控制方法,其特征在于:系统中设置功能菜单,菜单为树型结构,每个菜单对应一些功能的组合,每个菜单有1个以上的功能,每项功能有名称和功能英文码;
系统使用Struts2框架处理用户请求,在编写Action类时遵循以下规则:在菜单中定义的功能项,在Action类中要以英文简称作为方法名;对于同一功能有多于1个页面时,要在同一个方法内进行逻辑判断和处理;在系统中增加权限判断的Filter,对请求URL进行分析并过滤,此时URL由基础URL+功能英文码+其它参数组成,首先将URL进行分解,分解出基础URL和功能英文码,通过基础URL在菜单中查找对应的菜单,然后根据菜单+功能英文码+当前登录用户信息判定该用户是否有权限访问URL,在判断时根据以下顺序:
步骤1、如果菜单ID为空,表示该URL不在权限控制范围之内,通过,否则继续下一步;
步骤2、根据菜单ID和用户ID取出对应的权限列表,如果列表为空,则表示用户无此权限,转向权限错误页面,否则继续下一步;
步骤3、根据菜单ID取出菜单所有功能列表,如功能英文码不在此列表内,表示此功能不在功能控制之内,只要用户有此菜单的查看权限即可,通过,否则继续下一步;
步骤4、判断步骤2得到的权限列表中是否包含功能英文码代码的功能,如果有则通过,否则转向权限错误页面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210151182.3A CN102682240B (zh) | 2012-05-16 | 2012-05-16 | 大型bs结构系统中对资源的控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210151182.3A CN102682240B (zh) | 2012-05-16 | 2012-05-16 | 大型bs结构系统中对资源的控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102682240A CN102682240A (zh) | 2012-09-19 |
CN102682240B true CN102682240B (zh) | 2015-05-13 |
Family
ID=46814148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210151182.3A Active CN102682240B (zh) | 2012-05-16 | 2012-05-16 | 大型bs结构系统中对资源的控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102682240B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902898B (zh) * | 2012-09-21 | 2018-05-18 | 中国科学院信息工程研究所 | 多维数字媒体的资源使用控制方法及装置 |
CN110688167A (zh) * | 2018-07-04 | 2020-01-14 | 中国电信股份有限公司 | 功能链接集中生成方法和装置、计算机可读存储介质 |
CN110889126A (zh) * | 2019-11-25 | 2020-03-17 | 杭州安恒信息技术股份有限公司 | 一种优化的Web应用的权限控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1971558A (zh) * | 2005-11-25 | 2007-05-30 | 凌阳科技股份有限公司 | 一种嵌入式浏览装置及方法 |
CN101441688A (zh) * | 2007-11-20 | 2009-05-27 | 阿里巴巴集团控股有限公司 | 一种用户权限分配方法和一种用户权限控制方法 |
CN101620601A (zh) * | 2008-06-30 | 2010-01-06 | 上海全成通信技术有限公司 | 一种基于用户权限的目录树的构建方法 |
CN102110216A (zh) * | 2009-12-29 | 2011-06-29 | 深圳市赛格导航科技股份有限公司 | 一种增强Web应用系统安全性的方法及终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6785679B1 (en) * | 2000-03-29 | 2004-08-31 | Brassring, Llc | Method and apparatus for sending and tracking resume data sent via URL |
-
2012
- 2012-05-16 CN CN201210151182.3A patent/CN102682240B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1971558A (zh) * | 2005-11-25 | 2007-05-30 | 凌阳科技股份有限公司 | 一种嵌入式浏览装置及方法 |
CN101441688A (zh) * | 2007-11-20 | 2009-05-27 | 阿里巴巴集团控股有限公司 | 一种用户权限分配方法和一种用户权限控制方法 |
CN101620601A (zh) * | 2008-06-30 | 2010-01-06 | 上海全成通信技术有限公司 | 一种基于用户权限的目录树的构建方法 |
CN102110216A (zh) * | 2009-12-29 | 2011-06-29 | 深圳市赛格导航科技股份有限公司 | 一种增强Web应用系统安全性的方法及终端 |
Non-Patent Citations (1)
Title |
---|
《URL攻击防范和细粒度权限管理的安全链接方法》;杜恩宽;《计算机应用》;20090831;第29卷(第8期);第2230-2232页 * |
Also Published As
Publication number | Publication date |
---|---|
CN102682240A (zh) | 2012-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103559437B (zh) | 用于Android操作系统的访问控制方法及系统 | |
CN104102880B (zh) | 一种检测Android权限提升攻击的应用程序重写方法和系统 | |
CN103581187A (zh) | 访问权限的控制方法及控制系统 | |
CN103399785B (zh) | 一种Android车载系统进程管理的改进方法 | |
CN102231693A (zh) | 访问权限的管理方法及装置 | |
CN102945203A (zh) | 一种用于移动互联网应用的代码安全测试方法 | |
CN105046146A (zh) | 一种安卓系统的资源访问方法 | |
CN105094996A (zh) | 基于动态权限验证的Android系统安全增强方法及系统 | |
CN102682240B (zh) | 大型bs结构系统中对资源的控制方法 | |
CN104486357A (zh) | 一种基于ssh网站实现rbac访问权限控制的方法 | |
CN107566375B (zh) | 访问控制方法和装置 | |
CN104866772A (zh) | 一种基于物理环境感知的计算机访问控制方法及系统 | |
CN112269982A (zh) | 基于权限配置的数据访问控制的方法 | |
CN105404799A (zh) | 信息系统中的权限管理装置 | |
CN105184149A (zh) | 一种防止恶意程序频繁获取用户位置信息的方法及系统 | |
CN105631266A (zh) | 通过jQuery壳的多用户切换机制 | |
CN102043993A (zh) | 一种运输管理系统的系统控制方法 | |
Mutti et al. | Policy specialization to support domain isolation | |
CN111385253B (zh) | 一种面向配电自动化系统网络安全的脆弱性检测系统 | |
Marouf et al. | A learning-based approach for SELinux policy optimization with type mining | |
CN105808989A (zh) | 一种权限稽核方法及装置 | |
CN112507356B (zh) | 一种基于Angular的集中式前端ACL权限控制方法 | |
CN113704795B (zh) | 一种基于标签属性的多域访问控制形式化建模方法 | |
CN104580077A (zh) | 一种通过拦截器实现页面访问控制的方法 | |
Mingsheng et al. | Research and Development of Dual-Core Browser-Based Compatibility and Security |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |