viernes, 11 de febrero de 2011

Encriptar Sección Web.Config

Aunque he visto quien opta por encriptar todo el web.config , a mí en realidad la única sección que me parece fundamental encriptar es la de connectionStrings, pero sin importar con cual sección deseemos trabajar, la forma de hacerlo es muy sencilla y la presento a continuación.

Asumiendo que ya se tiene un sitio Web cuyo nombre de la aplicación en el IIS es MI_SITIO_WEB seguir los siguientes pasos:

1.- Abrir una venta de símbolo del sistema y dirigirnos a la ruta:
%WinDir%\Microsoft.NET\Framework\vX.X.XXXX\
Según sea la versión del framework que utiliza la aplicación.
2.- Escribir el siguiente comando
aspnet_regiis.exe -pe "connectionStrings" -app "/MI_SITIO_WEB"
Donde connectionStrings es la sección que queremos.
Si el comando es ejecutado correctamente deberá desplegar lo siguiente
Encrypting configuration section...
Succeeded!
Una vez hecho esto, la sección indicada habrá cambiando de algo como esto:

<connectionStrings>
  <add name="CONN1" connectionString="Data Source=SERVER;Initial Catalog=DB;User ID=USR;Password=PSW" />
</connectionStrings>


En algo como esto:

< connectionStrings configProtectionProvider="RsaProtectedConfigurationProvider" > < EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#" >
< EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" / > < KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#" >
< EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#" >
< EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" / >
< KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#" >
< KeyName >Rsa Key< /KeyName >
< /KeyInfo >
< CipherData >


Ahora tu sitio web tienen la sección encriptada pero accesible de manera transparente desde tu aplicación.
Información obtenida de http://carlosjuano.blogspot.com/2009/10/encriptar-el-webconfig.html

No hay comentarios:

Publicar un comentario