Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O ASP.NET Core permite que desenvolvedores configurem e gerenciem a segurança. A lista a seguir fornece links para artigos sobre como trabalhar com segurança no ASP.NET Core:
- Autenticação
- Autorização
- Proteção de dados
- Imposição de HTTPS
- Armazenamento seguro dos segredos do aplicativo no desenvolvimento
- Prevenção de XSRF/CSRF
- CORS (compartilhamento de recursos entre origens)
- Ataques de XSS (cross-site scripting)
Esses recursos de segurança permitem que você crie aplicativos ASP.NET Core robustos e seguros.
Para obter a cobertura de segurança Blazor, que complementa ou substitui as orientações neste nó, consulte autenticação e autorização no ASP.NET Core Blazor e os outros artigos no nó Segurança e Identity de Blazor.
Recursos de segurança do ASP.NET Core
ASP.NET Core fornece muitas ferramentas e bibliotecas para proteger aplicativos ASP.NET Core, como provedores de identidade internos e serviços de identidade não Microsoft, como Facebook, Twitter e LinkedIn. O ASP.NET Core fornece várias abordagens para armazenar segredos de aplicativo.
Autenticação versus autorização
A autenticação é um processo em que um usuário fornece credenciais que são comparadas às credenciais armazenadas em um sistema operacional, banco de dados, aplicativo ou recurso. Quando os dois conjuntos de credenciais correspondem, o usuário é autenticado com êxito. Em seguida, eles podem executar ações para as quais estão autorizados. O processo de autorização determina as ações que o usuário tem permissão para fazer.
Outra maneira de pensar na autenticação é considerá-la como uma maneira de inserir um espaço, em que o espaço é um servidor, banco de dados, aplicativo ou recurso. A autorização define quais ações o usuário pode executar para quais objetos dentro desse espaço (servidor, banco de dados ou aplicativo).
Vulnerabilidades comuns no software
ASP.NET Core e Entity Framework contêm recursos que ajudam você a proteger seus aplicativos e evitar violações de segurança. A seguinte lista de links leva à documentação com detalhe de técnicas para evitar as vulnerabilidades de segurança mais comuns em aplicativos Web:
- Ataques de XSS (cross-site scripting)
- consultas SQL > ataques de injeção de SQL
- Ataques de XSRF/CSRF (solicitações intersite forjadas)
- Ataques de redirecionamento aberto
Há mais vulnerabilidades sobre as quais você deve estar atento. Para obter mais informações, veja os outros artigos na seção Segurança e Identity do sumário.
Fluxos de autenticação seguros
É recomendável usar a opção de autenticação mais segura. Para os serviços do Azure, a autenticação mais segura são as identidades gerenciadas.
Evite usar a concessão ROPG (Credenciais de Senha do Proprietário do Recurso):
- Ele expõe a senha do usuário para o cliente.
- É um risco de segurança significativo.
- Use-o somente quando outros fluxos de autenticação não forem possíveis.
As identidades gerenciadas são uma maneira segura de se autenticar em serviços sem a necessidade de armazenar credenciais em código, variáveis de ambiente ou arquivos de configuração. As identidades gerenciadas estão disponíveis para serviços do Azure e podem ser usadas com o SQL do Azure, o Armazenamento do Azure e outros serviços do Azure:
- Identidades gerenciadas no Microsoft Entra para o SQL do Azure
- Identidades gerenciadas para o Serviço de Aplicativo e o Azure Functions
- Fluxos de autenticação seguros
Quando o aplicativo é implantado em um servidor de teste, uma variável de ambiente pode ser usada para definir a cadeia de caracteres de conexão para um servidor de banco de dados de teste. Para obter mais informações, confira Configuração. As variáveis de ambiente geralmente são armazenadas em texto sem criptografia. Se o computador ou o processo estiver comprometido, as variáveis de ambiente poderão ser acessíveis a partes não confiáveis. Não recomendamos o uso de variáveis de ambiente para armazenar uma cadeia de conexão de produção, pois não é a abordagem mais segura.
Diretrizes de dados de configuração:
- Nunca armazene senhas ou outros dados confidenciais no código do provedor de configuração ou nos arquivos de configuração de texto sem formatação. A ferramenta Gerenciador de Segredos pode ser usada para armazenar segredos em desenvolvimento.
- Não use segredos de produção em ambientes de teste ou de desenvolvimento.
- Especifique segredos fora do projeto para que eles não sejam acidentalmente comprometidos com um repositório de código-fonte.
Para saber mais, veja:
- recomendações de melhores práticas de identidade gerenciada
- Conectar-se do aplicativo a recursos sem manipular credenciais no código
- Serviços do Azure que podem usar identidades gerenciadas para acessar outros serviços
- Prática atual recomendada de segurança do IETF OAuth 2.0 (seção 2.4. Concessão de credenciais de senha do proprietário do recurso)
Para obter informações sobre outros provedores de nuvem, consulte:
- AWS (Amazon Web Services): AWS Key Management Service (KMS)
- Visão geral do serviço de gerenciamento de chaves do Google Cloud
Padrões de aplicativo Web corporativo
Para obter diretrizes sobre como criar um aplicativo ASP.NET Core confiável, seguro, com desempenho, testável e escalonável, consulte os padrões do aplicativo Web Enterprise. Um exemplo completo de aplicativo web com qualidade de produção que implementa os padrões está disponível.