標籤:安全 白帽子
第10章 存取控制10.1 what can i do?
許可權控制是值某個主體(身份)對某一個客體需要實施某種操作,而系統對這種操作的限制就是許可權控制。
在一個安全系統中,確定主題的身份是“認證”解決的問題;而客體是胭脂紅資源,是主題發起的請求對象。在主體對客體進行操作的過程,系統控制主體不能“無限制”地對客體進行操作,這過程就是“存取控制”。
在WEB應用中,根據訪問楷體的不同,常見的存取控制可以分為“基於URL的存取控制”、“基於方法的存取控制”和“基於資料的存取控制”。
在WEB系統中對於使用者的許可權控制需要在過濾器中進行檢測。
10.2 垂直許可權管理
垂直許可權管理本質就是角色型存取控制(RBAC)。
Spring Security提供了兩種許可權管理方式,一種是“基於URL的存取控制”,另一種“基於方法的存取控制”。換句話說就是,在SpringSecurity都是驗證該使用者所屬的角色,以決定是否授權。
10.3 水平許可權管理
水平許可權是指在同一角色的不同使用者的許可權控制問題。相對於垂直許可權管理而言,水平許可權問題出現在同一個角色上,一般的系統只是驗證了角色,沒有在角色內的使用者做細分,也沒有對資料的子集做細分,因此缺乏一個使用者到資料之間的對應關係。
由於水平許可權管理是系統缺乏一個資料級的存取控制所造成的,因此水平許可權管理又可以稱為“基於資料的存取控制”。
水平許可權管理難度較大的原因:
對於資料的存取控制,與業務結合得十分緊密,不易細分;
資料的存取控制可能會涉及到各個方面,如跨表、跨庫查詢,影響效能。
10.4 oauth簡介
OAUTH協議為使用者資源的授權提供了一個安全的、開放而又簡易的標準。與以往的授權方式不同之處是OAUTH的授權不會使第三方觸及到使用者的帳號資訊(如使用者名稱與密碼),即第三方無需使用使用者的使用者名稱與密碼就可以申請獲得該使用者資源的授權,因此OAUTH是安全的。
特點: (1). 簡單:不管是OAUTH服務提供者還是應用開發人員,都很易於理解與使用;
(2). 安全:沒有涉及到使用者密鑰等資訊,更安全更靈活;
(3). 開放:任何服務提供者都可以實現OAUTH,任何軟體開發商都可以使用OAUTH;
參看:
spring-security-oauth2.0認證
http://oauth.net/code/
《白帽子講WEB安全》學習筆記之第10章 存取控制