首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 安全架構概觀:內建機制與自訂擴充

     編輯:關於ASP.NET

.NET Framework 整合 IIS 提供完整 Web 安全基礎設施:驗證、授權、角色授權、模擬、程式碼存取安全 (CAS),並開放自訂擴充。本文概述核心功能、驗證/授權模組運作流程、身分與主體模型、以及建立安全 Web 應用的關鍵步驟。

ASP.NET 安全管線關鍵過程

  1. 驗證:識別使用者身分 (Windows、Forms、Passport、自訂)。
  2. 授權:檢查使用者是否有權存取要求資源 (URL 授權、檔案授權、自訂)。
  3. 模擬:以其他使用者身分執行程式碼 (存取網路資源、資料庫)。
  4. 加密:保護資料機密性與完整性 (ViewState、Cookie、連線字串)。

驗證模組運作

  • 於 Application_AuthenticateRequest 事件觸發。
  • 依 web.config <authentication mode="..."> 選擇模組 (FormsAuthenticationModule、WindowsAuthenticationModule 等)。
  • 模組解析憑證 (Cookie、HTTP 標頭)、建立 IIdentity、包裝成 IPrincipal 指派給 HttpContext.Current.User。

授權模組運作

  • 於 Application_AuthorizeRequest 事件觸發。
  • URL 授權 (UrlAuthorizationModule):依 web.config <authorization> 規則允許/拒絕。
  • 檔案授權 (FileAuthorizationModule):Windows 驗證下檢查 NTFS ACL。
  • 自訂授權:實作 IHttpModule 掛接 AuthorizeRequest。

身分與主體模型

ASP.NET 請求處理流程與驗證授權點位

  • Identity:使用者識別資訊 (Name、AuthenticationType、IsAuthenticated)。
  • Principal:Identity + 角色集合 + 自訂資料,實作 IPrincipal。
  • HttpContext.Current.User 持有目前請求的 Principal。

建立安全 Web 應用檢查清單

  1. 選擇適當驗證模式 (企業內部 → Windows;公開網站 → Forms/IdentityServer)。
  2. web.config 設定 <authentication>、<authorization> 拒絕匿名存取敏感目錄。
  3. 敏感資料 (連線字串、金鑰) 加密儲存 (aspnet_regiis -pef)。
  4. 啟用 EnableViewStateMac、ViewStateEncryptionMode 保護 ViewState。
  5. 使用參數化查詢/存儲過程防 SQL Injection。
  6. 錯誤頁面不洩漏堆疊追蹤 (customErrors mode="RemoteOnly")。
  7. 定期更新 .NET Framework/IIS 安全性修補。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved