CEH · M06

身分與權限:登入之後能做什麼?

成功登入只建立身分的某種證據。授權要再決定這個主體能對哪些資源執行哪些動作。

讀完後,你可以
  • 分開驗證 authentication 與 authorization。
  • 用權限矩陣檢查最小權限與預設拒絕。

先備閱讀:倫理駭客的起點:授權、範圍與停止條件

身分不是萬用通行證

Authentication 回答「你以什麼身分通過驗證」,authorization 回答「這個身分能做什麼」。同一個帳號可以讀取自己的報告,卻沒有修改別人報告或管理系統的權限。

權限提升表示取得原先沒有的較高能力。判斷時要比較提升前後的有效權限與動作證據,不能只因為命令成功或頁面顯示「admin」就宣稱已控制整個系統。

用最小權限縮小影響範圍

最小權限讓主體只取得工作所需的能力;預設拒絕讓未明確允許的請求被拒絕。把主體、資源與動作列成矩陣,可避免「有登入就全部允許」這類模糊規則。

驗證應同時包含可做與不可做的動作。若讀者角色能讀報告卻不能刪除,兩個結果都要確認。日常帳號與管理工作分離,可以減少錯誤或帳號遭濫用時的影響。

延伸閱讀:OWASP: Authorization Cheat Sheet

例子:報告讀者與維護者

合成系統有 reader 和 maintainer 兩個角色。reader 應只能讀自己的報告;maintainer 能更新報告,但不能變更帳號角色。

權限可拆成讀、寫、角色管理三個動作。維護報告的需要不會自動帶來帳號管理能力。每個判斷都應在可信的伺服端執行。

判斷:權限矩陣必須明列拒絕項目,並驗證它們。

紙上練習:補完權限矩陣

使用本文虛構角色,不變更實際帳號。

  1. 列出 reader、maintainer 與三個動作。
  2. 按例子填入允許或拒絕,再加入「reader 讀別人的報告」。
  3. 寫出一個正向檢查與一個拒絕檢查。

預期結果

reader 的寫入與角色管理被拒絕;maintainer 的角色管理也被拒絕;reader 不能讀他人的報告。

自行檢核

為何隱藏「刪除」按鈕不能取代伺服端授權?

結束與清理

保存矩陣即可;沒有權限變更需要回復。

Q&A · 檢查你的理由

選一個答案與作答信心,再閱讀所有選項的解析。答案只儲存在此瀏覽器。

ceh-m06-privilege-q1 · 原創練習

登入成功後,是否自動有權讀取所有報告?

登入成功後,是否自動有權讀取所有報告?
ceh-m06-privilege-q2 · 原創練習

只驗證 reader 能讀資料,還缺哪項重要檢查?

只驗證 reader 能讀資料,還缺哪項重要檢查?

連結下一個概念

詞彙:授權·最小權限

參考來源與範圍

以下來源支持技術原理;例子、題目與安全練習由本系列原創設計。