Como criptografar a string de conexão no Web.Config.
Segundo o Dicionário Aurélio criptografar significa. [De cript(o)- + -graf(o)- + -ar2.] V. t. d. 1. Tornar incompreensível, com observância de normas especiais consignadas numa cifra ou num código, o texto de (uma mensagem escrita com clareza). 2. Inform. Codificar (uma informação) de forma a tornar difícil sua decodificação sem a chave (20) adequada. [Cf. cifrar e codizar.] Como no arquivo Web.Config nós guardamos dados confidenciais, como por exemplo a senha do banco de dados, convém criptografar (tornar incompreensível) estas informações para que pessoas não autorizadas, tenha acesso. E este é o objetivo deste artigo, explicar como criptografar a string de conexão no arquivo Web.Conifg (Figura 1). Figura 1 – Arquivo Web.Config.
Figura 2 – Pasta do projeto ASP.NET contendo o arquivo Web.Config.
Por questões de praticidade não exibirei neste artigo o conteúdo do meu projeto, pois este não é o objetivo do artigo, e a única informação importante é que o projeto contém um arquivo com uma informação (senha do banco de dados) que precisamos tornar ela incompreensível para pessoas não autorizadas.
2. O segundo passo é abrir o SDK Command Prompt do Framework 2.0 (Figura 3).
Figura 3 – SDK Command Prompt – Iniciar / Programas / Microsoft .NER Framework SDK 2.0
3. Com o SDK Command Prompt aberto (Figura 4), nós podemos através do comando aspnet_regiis.exe ler todas as opções de criptografia existentes como, por exemplo, o modo de criptografar o Web.Config no IIS é diferente do modo pasta, que é o que estamos fazendo neste artigo.
Figura 4 – aspneti_regiis.exe
4. O quarto passo é executar o comando que irá realizar criptografia do Web.Config.
aspnet_regiis.exe -pef "connectionStrings" "F:\My Documents\Visual Studio 2005\WebSites\Criptografia" –prov "DataProtectionConfigurationProvider" |
Listagem 1 – Comando aspnet_regiis.exe
Vamos analisar o comando (Listagem 1).
- comando –pef :
-pef section web-app-physical-dir
Criptografa a sessão <connectionString> - Em seguida informamos o endereço físico do projeto.
- A sessão que contém o a string de Conexão.
<connectionStrings>
<add name="cnnString" connectionString="Data Source=MANS;Initial Catalog=Formulas;User ID=sa; Password=1010" providerName="System.Data.SqlClient" />
</connectionStrings>
Listagem 2 – Sessão <connectionStrings>
- O –prov é o provider que iremos utilizar, temos dois providers disponíveis. O DataProtectionConfigurationProvider usa DPAPI e o RSAProtectedConfigurationProvider usa a criptografia de chave pública do RSA.
Repare que na (Figura 1) eu tenho uma outra sessão chamada <appSettings> que também poderia ser criptografada.
5. Após o comando ser digitado pode ver a resposta de sucesso da criptografia. (Figura 5).
Figura 5 – Sucesso do comando.
6 . Com isso podemos voltar para Visual Studio e visualizar a string de conexão criptografada, mas antes de visualizar o Web.Config será exibida uma mensagem informando que o arquivo foi modificado e se deseja carregar estas modificações (Figura 6), clique em Sim.
Figura 6 – Aviso de modificação no arquivo Web.Config.
7. Em seguida, finalmente, podemos visualizar a string de conexão criptografada. (Figura 7).
Figura 7 – String de conexão criptografada.
Vimos que através dos passos acima é bem simples criptografar a string de conexão no arquivo Web.Config.
Abraços e até o próximo.
Sign up to our newsletter
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.