<table width="100%" border="0" cellspacing="0" cellpadding="5" bgcolor="#649CCC"><tr valign="middle"><td align="left"> <p class="p_Heading1"><span class="f_Heading1">第七章 驗證與授權</span></p> </td> <td align="right"> <span style="font-size: 9pt"> <a href="introduction.htm">Top</a>? <a href="new_item41.htm">Previous</a>? <a href="new_item43.htm">Next</a> </span> </td> </tr></table>
<table width="100%" border="0" cellspacing="0" cellpadding="5"><tr valign="top"><td align="left"><p style="line-height: 1.50;"> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?第七章 驗證與授權</p><p style="line-height: 1.50;"> ? 很多Web應用被其糟糕的身份驗證與授權機制所困擾。本章主要討論相關這些機制的漏洞,傳授一些幫助你不犯通病的方法。我將通過一些例子進一步說明這些方法,但請注意不要把這些示例與其上下文割裂開來看,理解其中包含的原則和方法是很重要的。只有到那個時候你才能對它們進行正確運用。</p><p style="line-height: 1.50;"> ? 通過驗證我們可以確定一個用戶的身份。典型的做法是簡單地使用用戶名和密碼進行檢查。這樣我們就能確定登錄用戶是一個授權用戶。</p><p style="line-height: 1.50;"> ? 身份驗證,常被稱為訪問控制,是一種你能用來保護對受限資源的訪問及確認一個用戶是否有權訪問特定資源的方法。例如,很多WEB應用會有只對授權用戶開放的資源、只對系統管理員開放的資源以及對所有用戶開放的資源。</p><p style="line-height: 1.50;"> ? 產生訪問控制漏洞的一個主要原因是粗心大意——在Web應用中這一部分程序是最少被關心和注意的。在開發中管理功能和訪問控制常常是最后考慮的,而且一般是從授權用戶的出發點去考慮和編寫,并沒有考慮攻擊者可能會使用的手段。對授權用戶的信任遠遠高過匿名用戶,但是如果你的管理功能是能通過URL直接公開訪問的話,就會成為攻擊者鐘愛的目標。疏忽是你首要的大敵。</p><p style="line-height: 1.50;"> ? 為達到安全的目的,需要在設計時就綜合考慮訪問控制。它不應只是一個現有應用的門閂,盡管有時可能是這樣的,但該流程是非常容易發生錯誤的,同時訪問控制中的錯誤必然導致安全漏洞。</p><p style="line-height: 1.50;"> ? 訪問控制還需要一個可靠的識別機制。畢竟,如果一個攻擊者能偽裝成一個合法用戶,所有的基于用戶識別的訪問控制是無效的。因此,你要考慮到攻擊的情況,例如會話劫持。關于會話相關的攻擊手段請參見第四章。</p><p style="line-height: 1.50;"> ? 本章涉及相關驗證與授權中通常需要關注的四個方面:暴力攻擊,密碼嗅探,重播攻擊以及永久登錄。</p><p style="line-height: 1.50;">?</p><p style="line-height: 1.50;">?</p><hr noshade="noshade" size="1"/><p style="line-height: 1.50;">?</p></td></tr></table>
- 第一章 簡介
- 1.1.PHP功能
- 1.1.1. 全局變量注冊
- 1.1.2. 錯誤報告
- 1.2.原則
- 1.2.1. 深度防范
- 1.2.2. 最小權限
- 1.2.3. 簡單就是美
- 1.2.4. 暴露最小化
- 1.3. 方法
- 1.3.1. 平衡風險與可用性
- 1.3.2. 跟蹤數據
- 1.3.3. 過濾輸入
- 1.3.4. 輸出轉義
- 第二章 表單及URL
- 2.1. 表單與數據
- 2.2. 語義URL攻擊
- 2.3. 文件上傳攻擊
- 2.4. 跨站腳本攻擊
- 2.5. 跨站請求偽造
- 2.6. 欺騙表單提交
- 2.7. HTTP請求欺騙
- 第三章 數據庫及SQL
- 3.1. 訪問權限暴露
- 3.2. SQL 注入
- 3.3. 數據的暴露
- 第四章 會話與 Cookies
- 4.1. Cookie 盜竊
- 4.2. 會話數據暴露
- 4.3. 會話固定
- 4.4. 會話劫持
- 第五章 包含
- 5.1. 源碼暴露
- 5.2. 后門URL
- 5.3. 文件名操縱
- 5.4. 代碼注入
- 第六章 文件與命令
- 6.1. 文件系統跨越
- 6.2. 遠程文件風險
- 6.3. 命令注入
- 第七章 驗證與授權
- 7.1. 暴力攻擊
- 7.2. 密碼嗅探
- 7.3. 重播攻擊
- 7.4. 永久登錄
- 第八章 共享主機
- 8.1. 源碼暴露
- 8.2. 會話數據暴露
- 8.3. 會話注入
- 8.4. 文件系統瀏覽
- 8.5. 安全模式
- 附錄 A. 配置選項
- 附錄B. 函數
- 附錄C. 加密