Si estamos publicando una aplicación en servidores de producción como IIS, debemos proteger dentro de nuestro web.config, la cadena de conexión de BBDD para no mostrar usuario y password, para ello, hay varias formas de hacerlo:
1) Usar seguridad integrada “SSPI” y evitar user/password en cadena de conexión:
<configuration> <connectionStrings> <add name=”SqlServices” connectionString=”Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;” /> </connectionStrings> </configuration
2) Encriptar la cadena de conexión(ver enlace codeproject Tips):
Framework: cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
ocultar: ASPNET_REGIIS -pef “connectionStrings” “c:\appweb\EncryptWebConfig”
mostrar: ASPNET_REGIIS -pdf “connectionStrings” “c:\appweb\EncryptWebConfig”
<CipherData> <CipherValue>42IPPRUjJxCNDHEBLCAJI4/NyLpLueZSBzUXO69lVdZU8+nLpxO+opnbZNxqddyzNnbCO1Uk2Da3ljExkqnLIxT2zs90JAhZvJ5ljIgCipq7ZEp7zHOpvTH9fBGoZJJWhgdddOrHZsLDE9mILjlvBHDhPQrYcMHtY6oLIbxJq92it82iBJv0fS7v1S/o0p4hAtfky+6hXCZWSKUJHr88NDrKe2EEK3mazD2QD5Ozf/w=</CipherValue> </CipherData
3) Para otro tipos de password que esten en appSetting, podemos usar esta técnica:
<appSettings file="..\..\AppSettingsSecrets.config"> <add key="webpages:Version" value="3.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings>
MS-Link: Prácticas recomendadas para implementar las contraseñas y datos confidenciales en applicaciones
Espero que sea de utilidad.