Tecnologia de Desarrollo

Lenguajes

El sistema de Linux Test On-Line fue desarrollado utilizando Tecnologia de Java para Aplicaciones web, llamada Java Server Pages - JSP -, la cual  permite generar contenido dinámico para web, en forma de documentos HTML, XML o de otro tipo.

Esta tecnología es un desarrollo de la compañía Sun Microsystems. La Especificación JSP 1.2 fue la primera que se liberó y en la actualidad está disponible la Especificación JSP 2.1.

Las JSP's permiten la utilización de código Java mediante scripts. Además, es posible utilizar algunas acciones JSP predefinidas mediante etiquetas. Estas etiquetas pueden ser enriquecidas mediante la utilización de Bibliotecas de Etiquetas (TagLibs o Tag Libraries) externas e incluso personalizadas.


Arquitectura

Con el fin de que nuestro sistema tenga un buen diseño y posea muchas de las caracteristicas de calidad de software, ademas sea facil su desarrollo, se hizo uso de la arquitectura para desarrollo web Modelo Vista Controlador - MVC - el cual es un patrón o modelo de abstracción de desarrollo de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de negocio en tres componentes distintos. El patrón de llamada y retorno MVC (según CMU), se ve frecuentemente en aplicaciones web, donde la vista es la página HTML y el código que provee de datos dinámicos a la página. El modelo es el Sistema de Gestión de Base de Datos y la Lógica de negocio, y el controlador es el responsable de recibir los eventos de entrada desde la vista.


Seguridad

En este proyecto la seguridad se centro en los sigueintes problemas de seguridad:

- Evitar Ataques con Inyeccion de SQL o Scripts: Para este caso, se aplico principalmente la validacion de datos de entrada por parte del usuario al con un algoritmo como el siguiente, el cual se activava en cada momento que se ingresaba un dato por teclado.

function es_palabra($cadena)
{
$expresion_regular="^[a-zAZ]+$";
return (ereg($expresion_regular,$cadena));
}

MD5
En criptografía, MD5 (abreviatura de Message-DigestAlgorithm 5, Algoritmo de Resumen del Mensaje 5) es un algoritmo de reducción criptográfico de 128 bits ampliamente usado.

Codificación

La codificación del MD5 de 128 bits es representada típicamente como un número de 32 dígitos hexadecimal. El siguiente código de 28 bytes ASCII será tratado con MD5 y veremos su correspondiente hash de salida:

MD5("Esto sí es una prueba de MD5") = 02306f485f385f6ed9ab6626052a633d

Un simple cambio en el mensaje nos da un cambio total en la codificación hash, en este caso cambiamos dos letras, el «sí» por un «no».

MD5("Esto no es una prueba de MD5") = dd21d99a468f3bb52a136ef5beef5034

Otro ejemplo serí­a la codificación de un campo vací­o:

MD5("") = d41d8cd98f00b204e9800998ecf8427e

Sesiones de Usuario
Una sesión de usuario se puede definir como el período de tiempo y de actividad que un usuario (con una única dirección IP) pasa en un sitio web. El número de sesiones de usuario en un sitio puede ser usado para determinar la cantidad de tráfico que alcanza un sitio. Un usuario puede volver a entrar al mismo sitio y se considerará la misma sesión de usuario, siempre que el usuario entre dentro un período de tiempo determinado por el administrador del sitio.
Además en nuestra aplicación las sesiones de usuario fueron desarrolladas con el fin de proporcionarle a la página otros lineamientos de seguridad, por ejemplo la línea de código:
     
        if (!isSession(request) && !op.equals("users")){…            
           
Verifica si el usuario a iniciado sesión para entrar al modulo de productos, de no ser así, el usuario será redireccionado hacia la pagina de autenticación. Entre otras funcionalidades el inicio de sesión permite al sistema diferenciar la entrada de un administrador y un usuario común.