como aplicar seguridad a nuestras aplicaciones web utilizando tecnologias asp

25
Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologías ASP.NET Resumen Es importante tomar en cuenta las posibles amenazas presentes cuando tenemos en producción un sitio web. Estas amenazas van desde el ingreso no autorizado al sitio, así como también, la manipulación indebida de datos de alta confidencialidad. Para esto existe una Solución "Seguridad en las aplicaciones Web con Tecnologías ASP.NET". Una de las principales ventajas que trae esta tecnología es Aplicar Membresía, Roles, Almacenamiento Encriptado de datos, administración de usuarios, manejo de procedimientos almacenados para realizar consultas parame trizadas. Manipulación de archivos de configuración, manejo de clases utilizando orientación a objetos, Desarrollo de la aplicación por capas entre otros, a continuación te presento lo que necesitas, los pasos y las mejores prácticas (Best Practices) para lograr de manera correcta todo el funcionamiento en tu sitio (Esto igualmente aplica para la EXCELENTE PAGINA COMO LO ES WWW.BIENSIMPLE.COM). Por otra parte, es importante acotar que es una parte de la seguridad en una aplicación Web, dedicada al tema de permisos. Pero que también puede revisar SQL Injection, y en general el tema de ataques a aplicaciones web, como también el tema de validaciones en cualquier ingreso que haga el usuario Necesitas Hablando de Software Necesitas: Visual Studio 2005 o 2008, o en su defecto Visual Web Developer Express Edition Proveedor de Datos: Microsoft SQLSERVER EXPRESS 2008 Pasos Paso 1 Muy sencillo, ejecuta Visual Studio, ir a Archivos > Nuevo > Sitio Web, dale un nombre al proyecto y aceptamos. Puedes utilizar cualquier Lenguaje VB, C#...

Upload: juan-jose-lopez-gavidia

Post on 04-Jul-2015

126 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologías ASP.NET

Resumen

Es importante tomar en cuenta las posibles amenazas presentes cuando tenemos en producción un sitio web.

Estas amenazas van desde el ingreso no autorizado al sitio, así como también, la manipulación indebida de

datos de alta confidencialidad. Para esto existe una Solución "Seguridad en las aplicaciones Web con

Tecnologías ASP.NET". Una de las principales ventajas que trae esta tecnología es Aplicar Membresía,

Roles, Almacenamiento Encriptado de datos, administración de usuarios, manejo de procedimientos

almacenados para realizar consultas parame trizadas. Manipulación de archivos de configuración, manejo de

clases utilizando orientación a objetos, Desarrollo de la aplicación por capas entre otros, a continuación te

presento lo que necesitas, los pasos y las mejores prácticas (Best Practices) para lograr de manera correcta

todo el funcionamiento en tu sitio (Esto igualmente aplica para la EXCELENTE PAGINA COMO LO ES

WWW.BIENSIMPLE.COM).

Por otra parte, es importante acotar que es una parte de la seguridad en una aplicación Web, dedicada al

tema de permisos. Pero que también puede revisar SQL Injection, y en general el tema de ataques a

aplicaciones web, como también el tema de validaciones en cualquier ingreso que haga el usuario

Necesitas

Hablando de Software

Necesitas: Visual Studio 2005 o 2008, o en su defecto Visual Web Developer Express Edition

Proveedor de Datos: Microsoft SQLSERVER EXPRESS 2008

Pasos

Paso 1

Muy sencillo, ejecuta Visual Studio, ir a Archivos > Nuevo > Sitio Web, dale un nombre al proyecto y

aceptamos. Puedes utilizar cualquier Lenguaje VB, C#...

Page 2: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Paso 2

Page 3: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Una de las características importantes de esta tecnología es que tu puede hacer uso de la herramienta de

configuración el cual en el mismo tu puedes crear roles, membresia, funciones para darle acceso al usuario a

ciertas partes de tu sitio, siempre y cuando el mismo este loguea y este autorizado. "Automaticamente se

Crea tu Base de datos con sus respectivas Tablas, Usuarios, Funciones, Roles, Procedimientos

Almacendados, Datos Encriptados. Esta lleva por nombre ASPNETDB.MDF" Sin necesidad de que tu crees la

Base de Datos.

¿Como podemos acceder a esta herramienta? Lo hacemos de la siguiente manera: Entras a la Menu que dice

Sitio Web / Herramienta de Configuracion de ASP.NET "Click"

Paso 3

Antes de entrar a la Herramienta de Configuracion vamos a observar los recursos que tengo al crear mi

proyecto y la creacion del directorio hacia donde los usuarios entraran al monento de autenticarse.

Visualizacion de Los Recursos.

Creando un directorio:

Page 4: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

El directorio lleva por nombre Miembros.

Retomando lo mencionado en la herramienta de configuracion Entras a la Menu que dice Sitio Web /

Herramienta de Configuracion de ASP.NET "Click"

Al Hecer click en la opcion se levantara una página de configuración de ASP.NET

Page 5: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

En el podemos encontrar varias opciones:

La Primera que debemos hacer click es en Proveedor: La zona Proveedor sirve para administrar el modo en

que ASP.NET almacena datos para las características de la aplicación, como cuentas de usuario, funciones y

otros valores de configuración. Recuerda que la Base de datos se Creara Automaticamente.

Page 6: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Al darle click aparece una opcion de prueba debes darle click, con esto se logra la visualizacion correcta de la

conexion a la base de datos

debes obtener una respuesta asi: "La conexión con la base de datos se estableció correctamente".

*La Segunda *debemos crear el tipo de autenticacion Windows o Forms eso lo hacemos en la Zona de

Suguridad.

Page 7: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

*Nota: *Debes tomar en cuenta algo

A.- "Desde Internet" Seleccionar la opción si los usuarios obtienen acceso al sitio Web desde Internet

B.- "Desde una red local" Si los mismos tendran acceso desde una red privada.

Selecciona la que veas mas conveniente para el desarrollo de tu web. Partiendo de los requerimientos. Una

vez Hecho Click en el Boton "Listo". parte Inferior derecho.

Al darle click al boton se activara la las opciones de crear usuario

La Segunda es que debemos crear los usuario que entraran a nuestro sitio

Click en la Zona Seguridad.

Page 8: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Cuando creamos una aplicación web nos interesa que tenga una cierta seguridad en toda la aplicación o en

zonas concretas de esta ya que tenemos una serie de recursos que deseamos proteger y solo sean

accesibles por tipo de usuario especificado. ASP.NET utiliza un sistema de seguridad que le permite restringir

el acceso a cuentas de usuario específicas o a las funciones (Roles) a las que pertenecen las cuentas de

usuario. Con la ficha Seguridad, puede administrar cuentas de usuario, funciones y reglas de acceso para el

sitio Web. Antes de utilizar la ficha Seguridad por primera vez, utilice el Asistente para la configuración de

seguridad para configuraciones de seguridad básicas para el sitio Web.

En el nos mostrara varios campos (Nombre, Contraseña, Pregunta Secreta, Respuesta Secreta, Email)

Importante: Podran notar que en la cantidad de usuario que anteriormente estaban que era 0 cambio

ahora a 1

Page 9: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

La Tercera Opcion es en la Zona Seguridad,

En el vamos a definir las Funciones es decir los roles que estaran presente en nuestro sitio. en otras palabras

debemos indicarle a nuestro sitio que usuario sera invitado, y cual sera administrador o quienes son miembros

de nuestro sitio.

Para hacerlos, activamos funciones y click en la opcion crear nueva funcion, nos mostrara un cuadro de texto

en el cual se debe colocar las funciones existentes. En nuestro caso vamos a colocar Miembros. Aceptar y

Listo.

*Una vez que habilito creo la funcion (Rol). este llevara el nombre de Miembros.*

Una vez que agrego la funcion puedo administrarla e igualmente eliminarla. Ahora las funciones cambiaron de

0 a 1

Notese que ahora podemos administrar a los usuarios que estan dentro de el rol antes creado. es decir

podemos decirle a nuestro sitio para darle mayor seguridad que el usuario biensimple esta asignado al rol

miembros.

De la siguiente manera:

Click en la opcion Administrar Usuarios / Click al Usuario a Editar Funciones / y va aparecer

ilustrativamente asi:

Page 10: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Click en la casilla miembros, ahi le estamos diciendo que el usuario [BienSimple] esta asignado al Rol

Miembros

La Cuarta Opcion en la misma Zona de Seguridad se encuentra una opcion que dice: Crear Reglas de

Acceso. Ahora vamos a asignarles a que usuarios van a estran a mi sitio siempre y cuando los mismos esten

logueados.

Nota: Para hacerlo mas facil, desde un comienzo creamos en el sitio una carpeta que el cual lleva por nombre

Miembros

Nos va aparecer en la parte izquierda todas los directorios presentes en mi sitio, por ejemplo app_data la

carpeta Miembros antes creada entre otros... De manera ilustrada es

asi:

Page 11: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Ahora, Click en la carpeta miembros, y le vamos a decir en la las opciones que tengo al otro lado que en la

misma no van a entrar usuarios desconocidos, es decir,

Selecciona la carpeta miembros, del Lado Derecho, Selecciono Usuarios anónimos, Denegar.

Con esto queremos decir, que los usuarios que no esten loguados, no podran entrar a los recursos que se

encuentren dentro de la carpeta Miembros y que estos seran denegados. Click en el boton Aceptar

Vamos a colocarlo de manera ilustrada:

Listo amigo ya tienes configurado todo tu sitio con sus respectiva seguridad.

Ya puedes cerrar la ventana del explorador e ir para la Visual Studio y comenzar a estruturar tu sitio

incluyendo la Seguridad.

Paso 4

En el explorador de soluciones que tienes en la parte derecha "Ahi tienes todos tus recursos antes

mencionados" mas la base de datos que el mismo crea automaticamente.

Page 12: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Importante: Hasta estos momentos hemos visto lo poderoso que es la herramienta SIN UNA LINEA DE

CODIGO

Veamos:

Click en Actualizar y,

Observemos la bd creada ASPNETDB.MDF todo eso se muestra al darle al boton actualizar.

Para continuar, vamos agregar un nuevo items. Nos posicionamos en la raiz de nuestro proyecto, Nuevo /

Agregar un Nuevo ITEM o Elemento. Agregamos una pagina el cual se llamara Login.aspx

Page 13: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Al hacerlo el mismo se agregara a nuestro sitio

Una de las funcionalidades que trae Visual Studio es que el mismo nos trae controles personalizados como

por ejemplo:

Login: en el mismo tu colocas nombre y contraseña

[LoginStatus]: Puedes Iniciar o Cerrar Tu Sesion Tipo Hotmail u Otros Proveedores de cuentas de Correo

[LoginName]: Para que al loguerate aparezca el nombre usuario de usuario autenticado

[CreateUserWizard]: Para crear nuevos usuarios

Una vez comprendido todo esto, abrimos la pagina login.aspx le damos una apariencia interesante y luego

arrastramos el control login y listo sres, ya tenemos nuestro sitio con sus respectivas seguridades.

Agregamos una plantilla a nuestro sitio.

Diseño / Insertar tabla Activamos la Opcion Plantilla.

Ahora es cuestion de creatividad para poder estructurar bien nuestro sitio, lo he creado de la siguiente

manera:

Page 14: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Asi como agregue una nueva carpeta al sitio el cual se llama "Miembros" ahora hice agregando una que se

llama "Images"

Las hubique, y luego las arrastre a la carpeta y listo.

Page 15: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Es importante acotar que en la pagina agregamos un control, login esto lo hacemos en el misma caja de

herramientas que nos aporta visual studio. observemos "Ficha Inicio de Sesion"

Ahora vamos a colocar recursos dentro de la carpeta Miembros y Comenzamos a loguearnos para que

observemos que solo entrar usuarios que estan autenticados y que pertenecen al rol Miembros.

Paso 5

Page 16: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Agregamos una nueva pagina dentro de la carpeta Miembros y le dejamos el nombre que trae por defecto

Default.aspx "Puede tener cualquier nombre"

Nota: Si al usuario se le ocurre hacer el llamado de la pagina que se encuentra dentro del directorio miembros

la misma configuracion antes creada evalua si el mism esta autenticado, de no ser asi automaticamente lo

reenvia a la pagina de login. Veamos...

Observemos la url:

Page 17: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

http://localhost:1619/BienSimple/login.aspx?ReturnUrl=%2fBienSimple%2fMiembros%2fDefault.aspx

Page 18: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Vamos a probar del todo la pagina con su respectiva "SEGURIDAD"

Observemos que estamos colocando el usuario biensimple creado con el administrador al darle click al boton

Iniciar Sesion observen lo que pasa:

Page 19: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Hemos entrado a la pagina Default.aspx porque nos hemos autenticado bien.

Ahora intentemos con un usuario que no existe

Page 20: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Me muestra un mensaje de error porque el usuario Nelson No existe.

Es importante acotar que para que el al momento de loguerame me envie a la pagina Default.aspx

primeramente se debe configurar una propiedad del control login que es "[DestinationPageURL]" asi:

Boton Derecho en el contro / Propiedad / Buscar----> [DestinationPageURL] y ubicar donde esta la

pagina a la que una vez logueado me envie hasta alla.

Page 21: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP
Page 22: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Paso 6

Podemos crear Nuevos Usuarios:

Si arrastramos un control [CreateUserWizard] podemos ubicar en sus propiedades un evento que se llama

[CreateUser] y con el simple hecho de colocar Roles.[AddUserToRole](Nombre del Control es decir

[CreateUserWizard1].[UserName], Nombre de la Funcion. Acuerdate antes creada Miembros)

Es decir, de la siguiente manera:

De manera ilustrada la pagina con el control queda de la siguiente manera:

Page 23: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Listo ya podemos crear usuarios con toda seguridad.

Por otra parte podemos colocar otros controles a la pagina para aumentar seguridad en cuanto al cerrado de

la sesion.

Agregamos Un control [LoginName1]: Muestra el nombre del usuario Logueado, y [LoginStatus1]: Muestra el

cerrado de la sesion

Page 24: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP

Al darle click a Cerrar Sesion Automaticamente la pagina lo envia a Login.aspx

Puedo ampliarte mas tus conocimientos, enviame un mail a [email protected] y con gusto puedo

ayudarte a crear aplicaciones seguras.

Page 25: Como Aplicar Seguridad a Nuestras Aplicaciones Web Utilizando Tecnologias ASP