web安全編程——權限的分配和控制

web安全編程——權限的分配和控制
2009-07-02 15:46
通常權限劃分是爲了控制數據和功能的使用範圍。傳統的劃分方法一般將用戶劃分爲匿名用戶、普通登錄用戶、管理員用戶。我們暫時將以上三
種用戶稱爲三種用戶組。
在大部分情況下,我們還需要對每個組內的用戶作更加細緻的權限控制。比如:電子郵件服務器上的登錄用戶之可以看到自己的電子郵件,但是
不可以看到其他人的電子郵件。
通常我們會使用以下三種機制作權限的控制:
1、驗證(登錄驗證)
2、Session 管理
3、訪問控制
這三中機制分別用來保護網站的三個獨立的方面。因爲這三者都是相互關聯的,因此網站的安全性取決於其中最薄弱的一個機制。任何一個模塊
被攻克,黑客都可能獲得所有的訪問權限和敏感數據。

一、驗證
這是最基礎的權限控制方法。沒有這個機制的網站全都爲匿名訪問的。因爲他無法區分某次的請求是來自哪個用戶的。現在,普遍的驗證方法是
用戶名,密碼登錄驗證。如果需要更嚴格的權限驗證,可以使用其他的驗證方法。例如:客戶端使用證書、smartcards、挑戰響應認證。在登錄
式認證中,一般會伴隨有其他的工具才能形成完整的認證服務。例如:註冊服務、帳號恢復服務、修改密碼服務等。

這樣的機制很簡單。因此在設計時和實現時都存在不少的漏洞。這些漏洞都可能導致攻擊者修改其他用戶的帳號信息、暴力破解其他用戶的帳號
信息和繞過登錄驗證機制。如果想要攻擊某一個網站,可以多花些精力研究一下對方網站的登錄函數。發現這些函數中的漏洞可以使你匿名訪問
敏感數據。

二、Session 管理
每時每刻服務器都在接受來自不同用戶的不同請求。服務器區分這些用戶和請求的方法幾乎都是使用Session。Session是保存在服務器端的一個
數據集,用來記錄用戶和服務器交互的狀態。每個Session對應一個令牌。每當用戶收到一個令牌,瀏覽器會自動把這個令牌附加在所有後續的>請求 中。這樣服務器就可以將用戶和請求對應起來。HTTP Cookie是實現令牌傳送的標準方法。但是也有一些人會使用hidden field 或者 URL >來傳輸令牌。如果用戶在一段固定的時間內沒有作任何的操作,那麼Session就會過期。
從攻擊者的角度來看。Session 管理很大程度上依賴於令牌。因此只要成功獲得令牌,那麼攻擊者就可以冒充其他用戶來執行操作。Session管>理的弱點主要在兩方面。第一是令牌 產生的方法。如果產生方法被破解。那麼攻擊者很容易就可以冒充其他合法用戶。第二是令牌在客戶端和服
務端的傳送方法。攻擊者可能在網絡上捕獲到其他用戶的令牌,這樣也可以達到冒充其他用戶的目的。

三、訪問控制
訪問控制是最後一個確保安全訪問的步驟。當用戶請求到來時,訪問控制模塊需要判斷用戶是否應該具有訪問他所請求的信息的權限。這個時候
用戶可能已經通過了前面兩道關卡。這個時候一般需要更具用戶此時所具有的角色來獲得判斷結果。這需要比前面兩個更加細緻的邏輯控制。也
正因爲如此,這個模塊是經常會出現問題的地方。結果就是攻擊者拿到了敏感數據和功能的訪問權限。開發者或者設計者往往想象客戶會如何正
確的進行訪問的流程,而攻擊者往往去想那些別人沒有想到的訪問流程。因此這樣的BUG纔會平凡出現。對一個網站這個模塊的深入研究,會能>會使你獲得更多的權限和數據。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章