ASP.NET Core 安全性主題
ASP.NET Core 可讓開發人員設定安全性並進行管理。 下列清單提供安全性主題的連結:
這些安全性功能可讓您打造強固且安全的 ASP.NET Core 應用程式。
如需新增或取代此節點中指引的 Blazor 安全性涵蓋範圍,請參閱 ASP.NET Core Blazor 驗證與授權,以及 Blazor 的「安全性與Identity」節點中的其他文章。
ASP.NET Core 安全性功能
ASP.NET Core 提供許多工具和程式庫來保護 ASP.NET Core 應用程式的安全 (例如內建的 identity 提供者) 以及協力廠商的 identity 服務 (如 Facebook、Twitter 和 LinkedIn)。 ASP.NET Core 提供數種方法可儲存應用程式秘密。
驗證與授權
驗證是一道程序,其會將使用者提供的認證與作業系統、資料庫、應用程式或資源中儲存的認證進行比對。 如果相符的話,使用者就能成功通過驗證,並可執行他們在授權程序期間取得授權的動作。 授權則是決定使用者得以執行哪些動作的程序。
您也可以將驗證想成是進入伺服器、資料庫、應用程式或資源這類空間的方法,而授權則表示使用者得以針對空間 (伺服器、資料庫或應用程式) 內哪些物件執行哪些動作。
軟體的常見弱點
ASP.NET Core 和 EF 包含的功能有助您保護應用程式的安全,並防範安全性缺口的發生。 下列連結清單可帶您前往如何避免 Web 應用程式中最常見資訊安全漏洞的技術詳細文件:
- 跨網站指令碼 (XSS) 攻擊
- SQL Injection attacks (SQL 插入式攻擊)
- 跨網站偽造要求 (XSRF/CSRF) 攻擊
- Open redirect attacks (開啟重新導向攻擊)
除此之外,還有許多弱點是您必須提防的。 如需詳細資訊,請參閱目錄安全性與 Identity 一節中的其他文章。
安全驗證流程
我們建議使用最安全的驗證選項。 針對 Azure 服務,最安全的驗證是 受控身分識別。
避免資源擁有者密碼認證授與,因為它:
- 將使用者的密碼公開給用戶端。
- 這是個重大的安全性風險。
- 只有在無法執行其他驗證流程時,才應該使用。
受控身分識別是一種對服務進行驗證的安全方式,不需要將認證儲存在程式碼、環境變數或設定檔中。 受控身分識別適用於 Azure 服務,並可搭配 Azure SQL、Azure 儲存體以及其他 Azure 服務使用:
將應用程式部署到測試伺服器時,可以使用環境變數將連接字串設定為測試資料庫伺服器。 如需詳細資訊,請參閱組態。 環境變數通常會以純文字、未加密的文字儲存。 如果電腦或流程遭到入侵,則不受信任的合作對象可以存取環境變數。 建議您不要使用環境變數來儲存生產 連接字串,因為它不是最安全的方法。
設定資料方針:
- 永遠不要將密碼或其他敏感性資料儲存在設定提供者程式碼或純文字設定檔中。 祕密管理員工具可以用來儲存開發環境中的密碼。
- 不要在開發或測試環境中使用生產環境祕密。
- 請在專案外部指定祕密,以防止其意外認可至開放原始碼存放庫。
如需詳細資訊,請參閱
- 受控 identity 最佳做法建議
- 從您的應用程式連線到資源,而不需處理程式碼的認證
- 可以使用受控識別來存取其他服務的 Azure 服務 (部分機器翻譯)
- IETF OAuth 2.0 安全性目前最佳做法
如需其他雲端提供者的資訊,請參閱: