岳康軍,周紅專
(湖南省通信建設有限公司,湖南長沙 410000)
一種新的細粒度URL權限管理方法
岳康軍,周紅專
(湖南省通信建設有限公司,湖南長沙 410000)
通過分析Web應用中URL安全管理的局限性,提出了一種利用Struts2開發(fā)框架的配置變量namespace來管理URL權限的方法。首先讀取用戶自定義的配置文件,匹配授權角色和登錄角色,再次調(diào)用解析算法解析操作權限值來匹配授權操作和請求操作。只有當兩者都匹配成功,才允許用戶正常訪問。實驗表明,該方法既能滿足一般的URL權限管理,還能根據(jù)用戶需求自定義權限控制的粒度來管理操作權限,且支持權限管理可配置,是一種通用的URL管理工具。
Web應用;URL技術;權限管理;算法匹配;粒度
隨著Web應用的迅速發(fā)展,在Web應用開發(fā)中,安全問題越來越受到關注[1]。在Web開發(fā)的安全問題中,權限控制顯得尤為重要,也是最基本的安全機制?;赨RL(uniform resource locator)的各種攻擊行為最為常見,它對系統(tǒng)數(shù)據(jù)的安全性的威脅很大。因此,加強URL攻擊的防范工作,對加強系統(tǒng)權限控制的管理研究至關重要。針對URL及訪問方法的權限管理是在角色管理的基礎上對系統(tǒng)更深一層次的安全保護和權限控制。
目前已經(jīng)提出了一些URL權限管理的方法,如文獻[2]針對URL攻擊提出了一種安全鏈接的生成和驗證方法,它通過提取目標鏈接和鑒別碼,利用散列算法生成新的鑒別碼,判斷URL是否被篡改達到防止URL攻擊行為的目的。但其新鑒別碼生成算法的計算復雜度較高,增加了算法的開銷。文獻[3]提出一種利用快速匹配算法分析用戶請求信息合法性的方法,該方法通過分析并檢查用戶請求URL是否為網(wǎng)站黑名單中的數(shù)據(jù),來判斷用戶請求的合法性。它依賴于系統(tǒng)的URL黑名單范圍,權限管理的靈活性和控制范圍受到了限制。
基于以上URL權限管理方法的不足,本文提出一種Web開發(fā)中基于Struts2框架[4-5]的URL權限管理方法。該方法相比于其他權限管理方法,主要的改進之處有:1)利用Struts2配置文件中的命名空間變量進行分級權限控制;2)權限管理的粒度靈活,可根據(jù)用戶需求自定義;3)支持對操作權限的控制,如查詢、增加、修改、刪除等;4)支持權限管理可配置,可以升級為通用的URL管理插件。
一般的URL權限控制可以分為以下幾個階段:
第一,確定權限控制的范圍。
系統(tǒng)在需求分析階段,將初步定義系統(tǒng)角色及其他各個角色的權限范圍。特別是對于安全性要求高的系統(tǒng),系統(tǒng)安全方面的分析與設計對系統(tǒng)數(shù)據(jù)的保護至關重要,影響到系統(tǒng)的整體價值。在開發(fā)階段,開發(fā)者將需求階段設計好的角色及附有權限與系統(tǒng)模塊功能綜合考慮,可以實現(xiàn)初步的角色權限控制[6-7]。在需求分析階段,角色一旦確定好,一般情況下,在后期是不允許隨便更改的。
第二,權限驗證。
權限驗證是權限管理的核心。當用戶發(fā)出URL請求時,首先進行的是角色權限的授權驗證[8]。如果有對應的訪問權限,則允許其正常訪問;否則跳轉至權限不足提示頁面。一般的權限控制可用自定義的過濾器(Filter) 或者開發(fā)框架中的配置文件管理來實現(xiàn),但是由于控制變量的選擇不恰當,或者控制方法的設計不合理,不能較靈活地實現(xiàn)細粒度權限的管理。在實際應用時,URL權限判斷中參數(shù)的多樣性及控制的復雜性降低了權限檢查的執(zhí)行效率,特別是當系統(tǒng)需要獨立控制多級菜單時,一般的URL權限控制方法難以滿足其要求,存在一定的局限性。
第三,處理驗證結果。
對于安全性要求比較高的B/S系統(tǒng),URL權限的控制是不可或缺的。為了避免非法URL對系統(tǒng)的訪問,開發(fā)者一般選擇攔截器進行第一層安全檢查。用戶只有填寫正確的登錄信息后才能訪問系統(tǒng)賦予該用戶的功能模塊。當一個非法的URL鏈接試圖在地址欄直接訪問系統(tǒng)時,系統(tǒng)將行使攔截功能,促使訪問用戶正常登錄。
一般的URL權限驗證結果有以下幾種處理情況:
1)若用戶未登錄,先轉到登錄頁面,提示用戶先登錄。
2)若未經(jīng)過登錄校驗器驗證通過,提示用戶登錄信息錯誤。
3)若經(jīng)過登錄校驗器驗證通過,則進一步判斷登錄用戶是否具有URL鏈接模塊的操作權限。具有相應的操作權限才允許正常操作,否則攔截請求。
基于一些可行的URL分類管理方法[9-10],本文提出的改進方法可分兩個層次判斷用戶的訪問權限:第一,讀取配置文件,獲取請求對應的授權訪問角色及授權操作信息。如果會話中事先保存了登錄角色,則匹配授權角色,沒有保存,則根據(jù)登錄用戶信息訪問數(shù)據(jù)庫提取對應的角色信息,匹配成功后進入下一層驗證,否則由用戶選擇重新登錄或者退出訪問;第二,獲取登錄用戶對應的授權操作信息,使用特定算法解析權限值得到操作權限列表,匹配操作權限列表是否包含請求的操作動作,匹配成功則允許執(zhí)行該操作,否則系統(tǒng)提示操作權限不足。改進方法的總體流程圖和具體權限判斷流程圖分別如圖1和圖2所示。
圖2 URL授權驗證流程圖
改進思想主要體現(xiàn)在以下幾個方面:
URL權限控制一般通過用戶自定義的過濾器進行配置管理,具有一定的局限性。本文提出利用Struts2配置文件的命名空間變量namespace進行分級控制,根據(jù)權限進行模塊分類,自定義namespace控制范圍,namespace名稱與用戶定義的URL權限的屬性文件相對應。達到分級控制URL權限的目的。
Module Name=role1#operate Value1 /role2#operateValue2, 其中,ModuleName 與配置文件中的namespace 名稱一致,role 表示授權角色名稱,可以并行授權多個角色,operateValue 表示授權角色擁有的操作權限值。namespace 可以從請求URL 中獲得,根據(jù)請求信息中解析獲得的namespace 找到屬性文件中與其一致的授權信息,用來控制對應角色的操作范圍。這種定義方式對于一個權限模塊支持多個角色的互不相同的操作控制,大大增加了控制的多樣性和獨立性。
一般的URL權限判斷局限在系統(tǒng)的二級菜單驗證中,對于三級及以上,甚至針對操作動作等更細粒度的URL權限控制一直沒有一個很好的解決方法。在本文的思想上,可以根據(jù)權限將管理模塊分類,自定義控制范圍,確定權限管理的粒度大小。將同一管理模塊內(nèi)相同權限的配置項集中在一個命名空間下。同理,根據(jù)用戶的實際需要,還可以將子模塊進行細分。一個命名空間管理的請求越少,粒度越小,但是不建議無限擴展粒度,這樣做將造成權限管理效率極快的降低。一般建議將粒度控制在三級菜單左右,這種粒度大小已能滿足大多數(shù)系統(tǒng)的權限管理需求。
本文提出的方法增加了對操作權限的管理。在處理請求數(shù)據(jù)前,先判斷操作用戶是否具有請求的操作權限。通過逐個匹配操作權限列表,檢查是否被授權用戶請求的操作。匹配成功則允許執(zhí)行操作,否則,提示請求的操作權限不足。這種對操作權限的管理一方面能夠防止系統(tǒng)中重要的數(shù)據(jù)被偶然修改,另一方面為系統(tǒng)的安全性添加了另一層保護。
具體的解析算法程序如下:
可以將程序的具體實現(xiàn)部分封裝起來,通過提供一系列外部接口和定義特定格式的配置文件,升級為一個通用的URL管理插件,應用到不同的項目中,既能提高代碼的重用率,又可以提高大型系統(tǒng)的開發(fā)效率。調(diào)用者按照預先約定的格式填寫屬性文件內(nèi)容,內(nèi)容以列表的形式展現(xiàn),每一行表示一個控制模塊。這種支持配置的URL權限管理方法僅需要獲得普通的請求參數(shù),結合自定義的框架配置文件,就可以實現(xiàn)高效、快捷、準確的細粒度的URL權限管理。
操作系統(tǒng):Windows 2003 Server;
Web服務器:tomcat-apache-6.0;
開發(fā)語言:Java;
工具:eclipse;
后臺DBMS:Navicat_for_MySQL_9.0。
1)對角色權限的判斷
實驗以一個自己開發(fā)的求職管理系統(tǒng)為例。求職管理系統(tǒng)主要有個人求職管理和公司招聘兩個模塊,規(guī)定角色A未授權訪問公司招聘模塊,角色B未授權訪問個人求職模塊。當角色A通過盜取訪問鏈接非法訪問公司招聘模塊時,本文提出的URL權限管理方法通過分析登錄用戶的信息能夠識別出該用戶是否有訪問權限。當識別出請求用戶不具有訪問權限時,系統(tǒng)自動跳轉至權限不足的提示頁面,如圖4所示。
2)對操作權限的判斷
當請求用戶成功通過第一層權限驗證,進一步對系統(tǒng)數(shù)據(jù)進行相關操作如查看、增加、修改、刪除等操作時,本文提出的方法會進行第二層的權限判斷。首先讀取訪問角色對應的操作權限值,通過算法解析獲得權限列表。只有授權列表中包含的操作項才能供合法訪問者操作,未授權的操作項對訪問者是隱藏的。例如實驗中,屬性文件中定義的角色A對應的操作權限值解析成列表后,其中包含刪除操作,測試頁面如圖5所示,頁面中會將紅色的刪除圖標顯示給用戶。一旦修改屬性文件中角色A的操作權限值,使其不具有刪除操作權限時,系統(tǒng)自動將訪問頁面的刪除圖標隱藏起來,如圖6所示。
如果需要進行控制粒度的調(diào)整,只需要修改Struts2配置變量namespace對應的請求范圍。合并兩個及以上個namespace管理的請求到一個大范圍內(nèi),則將粒度調(diào)大;在原有的基礎上細分命名空間管理的請求,則將控制粒度調(diào)小。本文提出的方法能夠以作盡量小的修改達到用戶對權限粒度大小的調(diào)整。
實驗表明本文提出的URL權限管理方法能準確、快速、便捷的進行自定義粒度的URL權限控制,對操作權限也進行了有效的管理。無需大量修改源代碼,通過修改自定義配置文件就可以完成URL及操作權限的需求變更,這樣既改善了權限管理的靈活性,也在一定程度上提高了大型項目的開發(fā)效率。
為了改進Web應用的安全機制,本文提出了一種便捷、高效、可配置粒度的URL權限管理方法。它基于Struts2框架的配置文件,達到利用命名空間namespace對系統(tǒng)模塊的分級、分類控制來實現(xiàn)粒度可配置的URL權限管理的目標。這種權限管理方法在普通的URL管理上,一方面增加了對操作權限的控制;另一方面封裝具體實現(xiàn)細節(jié),通過用戶自定義配置文件和調(diào)用外部接口,可以應用于不同項目的URL權限控制。由于這種方法受限于Struts2框架的開發(fā)環(huán)境,所以下一步的工作是如何將URL權限管理升級成一個不受限于開發(fā)環(huán)境,效率更高、更加通用的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應用開發(fā)[J].計算機工程,2011,37(9):112-114.
[6] 高大利,孫凌,辛艷.基于角色-權限的普適計算受限委托方法[J].計算機應用,2011,31(5):1298-1301.
[7] 黃箐,馬德山,項鏈.基于角色的安全登錄框架設計與實現(xiàn)[J].西北民族大學學報,2008,29(1):33-38.
[8] 陳欽,原煥,馮建華.企業(yè)檢索中訪問權限控制方法的實現(xiàn)與比較[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-),男,湖南新邵人,湖南省通信建設有限公司總經(jīng)理,工程師,研究方向:通信工程、軟件開發(fā)等。