martes, 10 de noviembre de 2009

Autentificación de usuarios en ASP

En un servidor IIS podemos autentificar usuarios de muchas formas.
Una de las más sencillas es utilizar un formulario en el que los usuarios introducen su nombre y su contraseña y luego verificamos este inicio de sesión contra una base de datos de usuarios.
En internet podemos encontrar mucha información sobre autentificación con ASP pero los ejemplos más sencillos se dejan atrás algunas consideraciones de seguridad.

Autentificación elemental


La forma más simple es utilizar una consulta SELECT con los datos del formulario (usuario y contraseña).

ssql = "select * from usuarios_autentificacion where nombre_usuario='" & request.form("usuario") & "' and clave_usuario='" & request.form("contrasena") & "'"

Pero es necesario verificar antes que no se han introducido en el formulario caracteres que puedan generar errores en el scritp ASP que puedan exponer nuestro sistema.

Un usuario malicioso podría utilizar el script para inyectar código en nuestro script de validación y obtener información valiosa sobre nuestro sitio o incluso hacerse con el control.

Autentificación un poco mejorada


Otra forma más elegante (y que no recarga demasiado al servidor) es verificar cada uno de los registros de la base contra los datos introducidos por el usuario:

'lectura secuencial de toda la base de datos de usuarios
Do While not rsGrupo.EOF
'hasta que coincidan las credenciales

If rsGrupo("usuario") = Request.Form("usuario") AND rsGrupo("contraseña") = Request.Form("contraseña") Then
Session("Authenticated") = 1
'en ese momento se redirige a una pagina de acceso a la sección protegida
Response.Redirect ("accedemos.asp")
Else
'si no coinciden mantenemos vacia la variable de autentificación
Session("Authenticated") = 0
Response.Redirect ("login.asp")
End If
rsGrupo.MoveNext
Loop

Este código nos permite hacer un formulario ligero, sin scripts, muy simple, en la seguridad (siempre relativa) de que será más complicado romper nuestro código inyectando caracteres no deseados en el formulario.

No hay comentarios:

Publicar un comentario

Los comentarios de este Blog están moderados, el autor del blog se reserva el derecho de aceptarlos o no sin razón aparente ni previo aviso.
Todas las aportaciones son bienvenidas.