WEB.CONFIG e ASP.NET
Sabe aquele dilema sobre "o que fazer com as informações de ConnectionString, credencial de contexto e etc" ?
Então, descobri que é possivel criptografar o web.config (todo ou só alguns campos). Não acho interessante criptografar tudo, mas pelo menos o usuário utilizado para rodar o ASP.NET e a ConnectionString (caso sua aplicação fale com banco de dados).
Alias, eu rodo a aplicação ASP.NET sob o contexto de um usuário de rede, dou permissão customizada para este usuário no banco e criptografo as seguintes partes do web.config:
- identity
- connectionStrings
Para utilizar isso fica muito facil:
Alterar o web.config incluindo a sua connectionString (servidor, datasource, etc, etc):
<connectionStrings> <add name="MainConnectionString" connectionString="server=foobar.tralala-br.com;database=SEGURANCA;Trusted_Connection=yes" providerName="System.Data.SqlClient" /> </connectionStrings>
E basta alterar a sua aplicação para utilizar as informações do web.config (C#):
SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["MainConnectionString"].ConnectionString);
Agora basta criptografar: Pode se utilizar chaves RSA ou a chave DPAPI da maquina (Que é a opção que escolhi) através do aspnet_regiis.exe:
aspnet_regiis.exe -pef "connectionStrings" "C:\Inetpub\wwwroot\MeuSite" –prov "DataProtectionConfigurationProvider"
Observação: Esta tecnica protege contra quem consegue ter acesso ao arquivo web.config. Caso a pessoa tenha acesso a máquina, é possivel rodar novamente o aspnet.regiis.exe e decifrar o arquivo sem problemas. Caso rode o aspnet_regiis.exe em outra máquina, não conseguirá pois a chave DPAPI é diferente.
VP


0 Comments:
Postar um comentário
<< Home