jueves, 24 de febrero de 2011

Encriptar ConnectionString (app.config o web.config)

La cadena de conexión o connection string es parte importante de toda aplicación, dado que mediante ésta se logra la comunicación entre la base de datos y los métodos de acceso a datos de la aplicación.
Sin embargo, más allá de su concepto, deberíamos tener varias consideraciones al momento de su creación, debido a que se podrían exponer datos confidenciales que servirían de información para usuarios malintencionados o hackers que quieran atacar a nuestra aplicación.
Basándonos en el ejemplo del post de “Desarrollo de Aplicación en Capas con Visual Studio 2008“, nos damos cuenta que una de las posibles formas de utilizar el ConnectionString es en el código que forma nuestros métodos de acceso a datos. Tal y como lo mencioné en dicho post, esa no es la forma más adecuada de llevar a cabo esta tarea.
Una de las buenas prácticas es almacenar el ConnectionString en un archivo “App.config” (en aplicaciones cliente/servidor) o “Web.config” (en aplicaciones web) que forme parte de nuestra solución. En caso de que se esté programando en capas, dicho archivo de configuración deberá estar en el proyecto más externo, por lo general, en el proyecto de “Presentación”, a pesar de que luego se utilice en los métodos de acceso a datos. Esto facilitará la interacción con dicha cadena de conexión, dado que posteriormente podremos invocarla desde cualquier parte del código sin tener que reescribirla.
Sin embargo, esto no elimina el problema de exposición de datos confidenciales, para lo cual usaremos elData Access Application Block del Enterprise Library v4.1, el cual forma parte de Microsoft Patterns & Practices y puede ser descargado de manera gratuita, y luego de su instalación podrá ser usado como una extensión más de Visual Studio.
Para lograr encriptar nuestra ConnectionString debemos seguir esta serie de pasos:
1) Añadir el archivo “App.config” o “Web.config” al proyecto de “Presentación”.
2) Hacer click derecho sobre el “App.config”, y luego en “Edit Enterprise Library Configuration”.
EditEnterpriseLibrary
3) Agregamos el Data Access Application Block.
Agregar Data Access
4) Agregar sección de Connection String.
Agregar seccion ConnString
5) Agregar nueva ConnectionString.
Agregar connectionString
6) Seleccionamos el nombre del ConnectionString.
nombre ConnectionString
7) Modificar las propiedades del ConnectionString.
propiedadesConnString
8 ) Hacemos click en Data Access Application Block y, en el cuadro de Propiedades, en la sección Protection, en ProtectionProvider seleccionamos: RsaProtectedConfigurationProvider.
ProtectionProvider
Por último, guardamos los cambios realizados al archivo “App.config” o “Web.config”, lo cerramos, y volvemos a abrir de manera tradicional (en xml) y veremos los cambios realizados: almacenada y encriptada la ConnectionString.
connString encriptada
Para terminar, luego podremos hacer uso de dicho ConnectionString de la siguiente manera:
cSharp_EntLib
De esta manera, terminamos usando un alias, denominado “prueba” en este caso, que no otorga ningún tipo de información relevante a un posible hacker, al tiempo que encriptamos la cadena de conexión en el archivo que la aloja.

lunes, 7 de febrero de 2011

Instalación de SQL SERVER 2008 R2


Para empezar esta instalación es standard, no detallo una instalación compleja de SQL Server 2008, realmente no existe dificultad para instalarlo sobre W2k8 pero para algunas personas puede servirles como punto de partida para instalar este producto, claro que para las personas que venimos de versiones anteriores de SQL Server encontraremos una diferencia en el instalador pero que en realidad es mucho más funcional. Recuerden que si también desean instalar Reporting Services es necesario que activen el rol de WebServer y Application Server para que se instale el Framework.
Roles
Al iniciar la instalación deberán instalar el SP1 de .Net Framework 3.5 y el Windows Installer 4.5 (los cuales vienen inscluidos en el instalador).
DotNetFramework35SP1Beta
Una vez instalados estos dos componentes aparecerá la pantalla del SQL Server installation Center
SQL2008InstallOverview
Para iniciar la instalación debemos ir a Installation y luego seleccionar New SQL Server stand-alone installation or add features to an existing installation (Aplica para el tipo de instalación que describimos en este post)
NewSQL2008Installation
El instalador ejecutará primeramente una revisión para identificar problemas que podrían ocurrir durante la instalación o limitaciones que podrían ocasionar que no podamos instalar SQL Server 2008.
SetupSupportFiles
Luego debemos seleccionar la edición que deseamos instalar o ingresar el product key del SQL Server 2008. (En este caso voy a instalar la edición Enterprise de prueba)
ProductKey
Aceptamos los téminos de licencia y damos clic en Next.
Licence
A continuación se ejecutarán los archivos para la instalación de SQL Server 2008.
SetupSupportFilesInstall
A continuación el instalador ejecutará las acciones del Setup Support Rules (Estas se deben cumplir para poder continuar con la instalación)
SetupSupporRules
Luego deben seleccionar los componentes que desean instalar (estoy seleccionando todos los componentes):
FeatureSelection
En este caso no tengo ninguna instancia de SQL Server y voy a proceder a instalar en el Default instance (En este paso pueden tambien renombrar el ID de la instancia y cambiar el directorio de la misma).
InstanceConfiguration
Luego el instalador validará el espacio disponible de disco.
DiskFreeSpace
Luego deberán configurar las cuentas con la que se inicará cada servicio de SQL Server 2008 (Yo tengo una cuenta creada con permisos administrativos en el servidor para iniciar sólo servicios de SQL Server).
ServerConfiguration
En este paso deberán seleccionar el modo de autenticación de SQL Server y agregar las cuentas que serán administradores de la instancia.
DBEngineConf
Además podrán cambiar los directorios para la data, datos de usuarios, logs, Temp DB, Temp DB Log y el directorio para los backups.
DataDirectories
Pueden también activar el FileStream (Para mayor información aquí)
FileStream
Luego deberán configurar las cuentas que tendrán permisos administrativos para Analysis Services.
ASConf
De igual forma pueden configurar los directorios para Analysis Services.
ASDataDirectories
En la configuración de Reporting Services voy a seleccionar el tipo por defecto, si cuentan con MOSS 2007 pueden cambiar a la segunda opción o si desean sólo instalarlo y configurarlo luego deberán seleccionar la tercera opción.
ReportingServices
Luego podran habilitar enviar información a Microsoft tanto de uso como de errores de SQL Server 2008.
ErrorUsage
El instalador validará las configuraciones seleccionadas en los pasos anteriores.
InstallRules
A continuación se presentará un resumen de la instalación que se llevará a cabo.
Summary
Luego iniciará la instalación.
Finalmente presentará el fin de la instalación.
 Finish
Luego de finalizar la instalación deberán realizar configuraciones adicionales con las herramientas de configuración de SQL Server 2008.
Finalmente nos conectamos al Management Studio para empezar a utilizar SQL Server 2008.
SQLMS