Ejecución de CGI

Una vez ingresados los datos, estos son enviados para su verificación a un cgi o script.

Los scripts generalmente tienen una estructura predefinida. En el caso del login es la siguiente (se ha simplificado para su fácil lectura):

  1. Encabezado de ejecución en modo de verificación
  2. Bandera para ejecución modo debug
  3. Carga de librerías propias de usuario (no siempre requerido)
  4. Importación de rutinas cgi
  5. Uso de modo estricto (recomendado)
  6. Carga de librerías del sistema
  7. Lectura de parámetros
  8. Validación de origen
  9. Validación de datos
  10. Validación de existencia de usuario
  11. Creación de cookies de identidad y sesión
  12. Establecimiento de página de retorno
  • #!/usr/bin/perl -wT
  • our $bool_DEBUG = 0;
  • use cPanelUserConfig;
  • use CGI qw(:cgi);
  • use strict;
  • require ("./captcha.cgi"); use subs qw(kptVerify);
  • my $str_fromuri = referer();
  • die() unless ($bool_DEBUG || validOrigin($str_fromuri,$str_FULLDOMAIN));
  • push (@arr_errors,"login") unless ($str_log);
  • if (!@arr_errors) { $str_pwd = encodePwd($str_pwd,envSecCode); dbQuery($str_query); }
  • if (!@arr_errors) { $cook_identity = cookie(); $cook_session = cookie(); }
  • $str_fromuri .= "&service=$str_adminserviceID&admin=$str_admID&action=c" if ($cook_identity && $cook_session);
  • if (!@arr_errors) { print redirect(-uri=>$str_fromuri,-cookie => [$cook_identity,$cook_session]); }

En caso de que el usuario sea válido (clave de acceso, contraseña, captcha) se establecen dos cookies de identidad y se redirecciona a la página del administrador (o usuario) donde podrá verificar sus datos y últimos accesos. En caso contrario, se regresa a la página principal, señalando los campos erróneos.

Cookies generadas

En caso de que sea un usuario válido, se generan dos cookies, una de identidad y otra conteniendo información de la sesión.

La primera lleva por nombre admin o user sergún sea el caso, conteniendo la siguiente estructura:

  1. Identificador del administrador
  2. Nombre
  3. Nivel de privilegios
  4. Identificador de sesión
Esta cookie tiene como validez 1 día y solo es válida dentro del dominio del panel de control administrativo.

La segunda cookie se llama session y contiene la siguiente información;

  1. Clave de acceso utilizada
  2. Datos "aleatorios" (disponible para información adicional)
  3. Idioma preferido
  4. Identificador de sesión
Esta únicamente estará activa lo que dure el navegador abierto y solo es válida dentro del dominio del panel de control administrativo.

En el caso de usuarios, hay pequeños cambios, como es que el nivel de privilegios contenido en la cookie de identidad lleva el valor del tipo de perfil de usuario (en el caso de administradores hasta el momento solo hay dos: privilegiados y no); así como el alcance de las cookies, que en este caso son el dominio principal y el de panel de control del usuario.