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 提供了多种存储应用机密的方法。
身份验证 vs授权
身份验证是这样一个过程:由用户提供凭据,然后将其与存储在操作系统、数据库、应用或资源中的凭据进行比较。 在授权过程中,如果凭据匹配,则用户身份验证成功,可执行已向其授权的操作。 授权指判断允许用户执行的操作的过程。
也可以将身份验证理解为进入空间(例如服务器、数据库、应用或资源)的一种方式,而授权是用户可以对该空间(服务器、数据库或应用)内的哪些对象执行哪些操作。
软件中的常见漏洞
ASP.NET Core 和 EF 提供维护应用安全、预防安全漏洞的功能。 下表中链接的文档详细介绍了在 Web 应用中避免最常见安全漏洞的技术:
还应注意其他漏洞。 有关详细信息,请参阅目录的“安全性和 Identity”部分中的其他文章。
安全身份验证流
建议使用最安全的身份验证选项。 对于 Azure 服务,最安全的身份验证是托管标识。
避免资源所有者密码凭据授予,因为它:
- 向客户端公开用户的密码。
- 存在重大安全风险。
- 仅当其他身份验证流不可用时,才应使用。
托管标识是对服务进行身份验证的安全方式,无需在代码、环境变量或配置文件中存储凭据。 托管标识可用于 Azure 服务,并可与 Azure SQL、Azure 存储 和其他 Azure 服务一起使用:
将应用部署到测试服务器时,可以使用环境变量向测试数据库服务器设置连接字符串。 有关详细信息,请参阅配置。 环境变量通常以未加密纯文本的形式进行存储。 如果计算机或进程遭到入侵,那么不受信任方可访问环境变量。 建议不要使用环境变量来存储生产连接字符串,因为它不是最安全的方法。
有关详细信息,请参阅:
有关其他云提供商的信息,请参阅: