Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: .NET Framework
.NET
.NET Standard
Proteger o acesso à sua fonte de dados é um dos objetivos mais importantes ao proteger um aplicativo. Uma cadeia de ligação apresenta uma potencial vulnerabilidade se não estiver segura. Armazenar informações de conexão em texto simples ou mantê-las na memória corre o risco de comprometer todo o sistema. As strings de ligação embutidas no seu código-fonte podem ser lidas usando o Ildasm.exe (IL Disassembler) para visualizar a linguagem intermédia Microsoft (MSIL) numa assembly compilada.
Vulnerabilidades de segurança envolvendo cadeias de conexão podem surgir com base no tipo de autenticação usado, como as cadeias de conexão são persistidas na memória e no disco e as técnicas usadas para construí-las em tempo de execução.
Utilizar autenticação no Windows
Para ajudar a limitar o acesso à sua fonte de dados, você deve proteger as informações de conexão, como ID de usuário, senha e nome da fonte de dados. Para evitar expor informações dos utilizadores, recomendamos a utilização da autenticação Windows (por vezes referida como segurança integrada) sempre que possível. A autenticação do Windows é especificada numa cadeia de ligação usando as Integrated Security palavras-chave ou, Trusted_Connection eliminando a necessidade de usar um ID de utilizador e palavra-passe. Ao usar a autenticação do Windows, os usuários são autenticados pelo Windows e o acesso aos recursos do servidor e do banco de dados é determinado pela concessão de permissões a usuários e grupos do Windows.
Para situações em que não é possível usar autenticação Windows, deve ter cuidado extra porque as credenciais do utilizador ficam expostas na cadeia de ligação. Em um aplicativo ASP.NET, você pode configurar uma conta do Windows como uma identidade fixa que é usada para se conectar a bancos de dados e outros recursos de rede. Você habilita a representação no elemento identity no arquivo web.config e especifica um nome de usuário e senha.
<identity impersonate="true"
userName="MyDomain\UserAccount"
password="<password>" />
A conta de identidade fixa deve ser uma conta de baixo privilégio à qual foram concedidas apenas as permissões necessárias no banco de dados. Além disso, você deve criptografar o arquivo de configuração para que o nome de usuário e a senha não sejam expostos em texto não criptografado.
Evite ataques de injeção com construtores de strings de conexão
Um ataque de injeção de cadeia de conexão pode ocorrer quando a concatenação dinâmica de cadeia de caracteres é usada para criar cadeias de conexão com base na entrada do usuário. Se a entrada do usuário não for validada e o texto ou caracteres mal-intencionados não forem escapados, um invasor poderá acessar dados confidenciais ou outros recursos no servidor. Para resolver este problema, o Microsoft SqlClient Data Provider para SQL Server introduziu uma nova classe connection string builder para validar a sintaxe das strings de ligação e garantir que não são introduzidos parâmetros adicionais. Para obter mais informações, consulte Construtores de cadeias de conexão.
Use "Persistir Informação de Segurança=falso"
O valor padrão para Persist Security Info é false, recomendamos usar esse padrão em todas as cadeias de conexão. Configuração Persist Security Info ou trueyes permite que informações confidenciais de segurança, incluindo o ID de usuário e a senha, sejam obtidas de uma conexão depois que ela for aberta. Quando Persist Security Info está definido para false ou no, a informação de segurança é descartada após ser usada para abrir a ligação, garantindo que uma fonte não confiável não tenha acesso a informações sensíveis à segurança.
Encriptar ficheiros de configuração
Aplica-se a: .NET Framework; .NET
Você também pode armazenar cadeias de conexão em arquivos de configuração, o que elimina a necessidade de incorporá-las no código do seu aplicativo. Os ficheiros de configuração são ficheiros XML padrão para os quais o .NET Framework definiu um conjunto comum de elementos. As strings de ligação nos ficheiros de configuração são normalmente armazenadas dentro do <elemento connectionStrings> na app.config para uma aplicação Windows, ou no ficheiroweb.config para uma aplicação ASP.NET. Para mais informações sobre o básico de armazenamento, recuperação e encriptação de cadeias de ligação a partir de ficheiros de configuração, consulte Cadeias de Ligação e Ficheiros de Configuração.