Capa de seguridad en ASP

  • Por
Veamos el código y funcionamiento de la capa de seguridad en ASP, encargada de comprobar que existe un contexto de seguridad para mostrar o no la aplicación restringida.
Este archivo, en nuestro caso llamado seguridad.asp, se encargará de dotar seguridad a toda la aplicación de acceso restringido. La técnica que vamos a utilizar es incluirlo al principio de todas las páginas que queramos que permitan un acceso restringido.

El módulo de seguridad, incluido al principio de cada archivo, realizará las comprobaciones oportunas y actuará permitiendo ver el archivo o denegando su visualización, dependiendo de dichas comprobaciones.

Dependiendo del nivel de seguridad que deseemos implementar, la creación de este archivo puede ser más o menos complicada. Como no deseo complicar en un principio los scripts, esta versión resultará bastante sencilla.

Lo único que haré será comprobar que se ha creado la variable de sesión y contiene el dato adecuado, lo que significará que el usuario se había autentificado correctamente.

Si no se había autentificado, redirijo al navegador a la página que tiene el formulario de autentificación. Además, salgo del script ASP, con lo que la página deja de ejecutarse y el resto no se verá. Sólo se mandará al navegador la redirección con lo que el navegador se moverá la formulario y será imposible ver nada en la página segura.

Si se había autentificado, no hago nada. Ni tan siquiera trato este caso, de modo que se seguiría ejecutando la página con el contenido que correspondiese. No hay que olvidar que este archivo de seguridad se va a ejecutar como un include al principio de todos los archivos de la aplicación restringida, lo que significa que, si no se hace nada, se seguiría mostrando la página donde este archivo está incluido.

El código se puede ver a continuación:

<%
Response.Buffer = true
' compruebo que tengo la variable de sesion creada y con el dato correcto
if session("autentificado") <> "si" then
    response.redirect "index.asp"
    response.end
end if
%>

La sentencia response.buffer = true indica que la salida generada por la página ASP se guardará en el buffer de IIS mientras que no haya sido procesada toda la página. Nos asegura que no se mandará nada al navegador del usuario hasta que se ha decidido si el contexto en el que se solicita es seguro o no.

response.end detiene el procesamiento de la página. Además devuelve al navegador del usuario la salida generada hasta ese momento. Si hay código debajo de un response.end no se ejecuta, pues la página se dio por finalizada.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Gabriel Cambronero

11/8/2004
Compañeros,

Estuve viendo el ejercicio práctico que tienen sobre la capa de seguridad en ASP, todo perfecto, me logueo y entro a la página segura, pero despues me salgo y técnicamente no debería dejarme entrar a esa pagina segura, pero da la casualidad que despues de desloguarme entre a la pagina segura donde deberia devolverme a la pagina de autentificacion pero no fue así.. pude entrar donde se supone que no deberia.

Que paso ?? como solucionamos eso ?

Ignacio

08/2/2005
Yo no sé porqué,pero ciertos ordenadores, o ciertos sistemas operativos no registran o envian bien la variable sesión. En concreto yo lo he constatado en un Windows 98 versión 6.0

Luis

17/1/2007
Probe el codigo pero no esta cumpliendo su valor ya que puedo acceder directamente del navegador a mi pagina restringida

sebastian

07/11/2007
lo mas seguro es que algo le falte al codigo o no hayas matado la session con session("xxx")="" o session.abandon