.NET 透過 System.Security.AccessControl 命名空間封裝 Windows ACL 系統,提供型別安全的存取控制程式設計介面。本節建立核心概念地圖。
| 清單 | 全名 | 功能 | 組成 |
|---|---|---|---|
| DACL | Discretionary Access Control List | 控制**誰能存取**資源 (允許/拒絕) | 多個 ACE (Access Control Entry) |
| SACL | System Access Control List | 控制**何種存取被稽核** (成功/失敗) | 多個稽核 ACE |
| 資源類型 | 安全性類別 | 存取規則類別 | 稽核規則類別 |
|---|---|---|---|
| 目錄 | DirectorySecurity | FileSystemAccessRule | FileSystemAuditRule |
| 檔案 | FileSecurity | FileSystemAccessRule | FileSystemAuditRule |
| 登錄機碼 | RegistrySecurity | RegistryAccessRule | RegistryAuditRule |
| Mutex/Event/Semaphore | MutexSecurity/EventWaitHandleSecurity/... | 對應存取規則 | 對應稽核規則 |
GetAccessRules(includeExplicit, includeInherited, targetType) — 列舉規則AddAccessRule / SetAccessRule / RemoveAccessRule — 修改 DACLAddAuditRule / SetAuditRule / RemoveAuditRule — 修改 SACLSetAccessRuleProtection(isProtected, preserveInheritance) — 切斷/保留繼承SetOwner / GetOwner — 擁有者管理GetSecurityDescriptorSddlForm / SetSecurityDescriptorSddlForm — SDDL 序列化FileSystemAccessRule : AuthorizationRule
→ IdentityReference (主體)
→ FileSystemRights (權限)
→ AccessControlType (Allow/Deny)
→ InheritanceFlags / PropagationFlags
FileSystemAuditRule : AuthorizationRule
→ IdentityReference
→ FileSystemRights
→ AuditFlags (Success/Failure)
→ InheritanceFlags / PropagationFlags
後續章節:(二) 新增規則與原子建立、(三) 允許/拒絕優先序與繼承、(四) SACL 稽核規則實作。
本文部分內容改編自《.NET安全揭秘》
作者:玄魂
出處:https://www.cnblogs.com/xuanhun/