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 服务一起使用:

将应用部署到测试服务器时,可以使用环境变量向测试数据库服务器设置连接字符串。 有关详细信息,请参阅配置。 环境变量通常以未加密纯文本的形式进行存储。 如果计算机或进程遭到入侵,那么不受信任方可访问环境变量。 建议不要使用环境变量来存储生产连接字符串,因为它不是最安全的方法。

配置数据指南:

  • 请勿在配置提供程序代码或纯文本配置文件中存储密码或其他敏感数据。 机密管理器工具可用于存储开发环境中的机密。
  • 不要在开发或测试环境中使用生产机密。
  • 请在项目外部指定机密,避免将其意外提交到源代码存储库。

配置数据指南:

  • 请勿在配置提供程序代码或纯文本配置文件中存储密码或其他敏感数据。 机密管理器工具可用于存储开发环境中的机密。
  • 不要在开发或测试环境中使用生产机密。
  • 请在项目外部指定机密,避免将其意外提交到源代码存储库。

有关详细信息,请参阅:

有关其他云提供商的信息,请参阅:

其他资源