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.
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.
Miguel Angel Alvarez
Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...