Como armazenar strings de conexão em ASP.NET de forma segura

Melhores estratégias de segurança para ASP.NET Framework e ASP.NET Core

11/03/2024

Como armazenar strings de conexão em ASP.NET de forma segura

Como armazenar strings de conexão em ASP.NET de forma segura

Introdução

Armazenar strings de conexão de forma segura é crucial para a segurança e a eficiência no desenvolvimento de aplicações ASP.NET e ASP.NET Core.

Um erro comum é incorporar diretamente as strings de conexão no código-fonte, o que acarreta em desafios significativos de manutenção e vulnerabilidades de segurança.

Este artigo discute práticas recomendadas para evitar essas armadilhas, focando no armazenamento seguro de strings de conexão desde o ASP.NET Framework até o ASP.NET Core.

ASP.NET Framework

Para uma gestão segura de strings de conexão no ASP.NET Framework, é recomendado utilizar a seção connectionStrings em web.config. Esta abordagem centraliza as informações de conexão, facilitando a manutenção e aumentando a segurança. A prática recomendada inclui o uso do elemento <clear /> no início da seção para garantir que todas as configurações herdadas sejam removidas antes de definir as novas strings de conexão:

<configuration>
    <connectionStrings>
        <clear />
        <add name="myConnectionString" connectionString="server=localhost;database=BancoDeDados;uid=Usuario;password=Senha;" />
    </connectionStrings>
</configuration>

Para acessar a string de conexão no código, utilize a classe ConfigurationManager:

string connStr = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;

Lembre-se de adicionar uma referência ao componente System.Configuration e incluir o namespace System.Configuration para acessar a classe ConfigurationManager.

ASP.NET Core

No ASP.NET Core, a abordagem recomendada para armazenar strings de conexão é utilizando o arquivo appsettings.json. Isso facilita a configuração e a manutenção, permitindo que as strings de conexão sejam facilmente ajustadas sem necessidade de recompilar a aplicação.

{
  "ConnectionStrings": {
    "myConnectionString": "Server=localhost;Database=BancoDeDados;User Id=Usuario;Password=Senha;"
  }
}

Para acessar essa string de conexão no código, a prática comum é injetar a interface IConfiguration e utilizar o método GetConnectionString:

// Startup.cs
public class Startup
{
    public IConfiguration Configuration { get; }

    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddDbContext<MyContext>(options =>
            options.UseSqlServer(Configuration.GetConnectionString("myConnectionString")));
    }
}

// MyContext.cs
public class MyContext : DbContext
{
    public MyContext(DbContextOptions<MyContext> options) : base(options) { }
}

Este método simplifica o gerenciamento de configurações e reforça as melhores práticas de segurança e manutenção de aplicações modernas.

ASP.NET e SQL Server na MCO2

A MCO2 oferece suporte completo para todas as versões do ASP.NET Framework e ASP.NET Core, além de garantir compatibilidade com a versão mais atual do SQL Server 2022. Nossas soluções de hospedagem são projetadas para atender às necessidades dos desenvolvedores que buscam performance, segurança e estabilidade. Confira nossos planos de hospedagem ASP.NET e descubra como podemos ajudar a elevar o seu projeto ao próximo nível.

Conclusão

Armazenar strings de conexão de maneira segura é um pilar fundamental para a segurança e eficiência de aplicações ASP.NET e ASP.NET Core. Seguir as práticas recomendadas, como evitar a inclusão direta dessas strings no código-fonte e optar por métodos seguros de armazenamento em web.config ou appsettings.json, minimiza riscos de segurança e simplifica a manutenção. Lembre-se de que a gestão adequada dessas strings não apenas protege suas informações sensíveis, mas também assegura a integridade e a confiabilidade da sua aplicação. Implementar medidas adicionais de segurança, como criptografia das strings de conexão e a adoção de identidades gerenciadas, pode oferecer camadas extras de proteção. Ao dedicar atenção à segurança das suas strings de conexão, você contribui significativamente para a resiliência e sucesso do seu projeto.

Este artigo nas redes sociais: Facebook, Twitter/X, LinkedIn, Telegram, Pinterest, Tumblr, Flipboard, Mastodon

Domínios hospedados
Clientes satisfeitos