Consideraciones de Seguridad


Consideraciones de seguridad realizadas en la aplicación IDIS COLABORATIVA

Dado el corto tiempo de realización del proyecto se tuvieron en cuentas las cuestiones de seguridad más relevantes y directamente relacionadas con las tareas que realiza la aplicación. Por lo tanto su cubrieron aspectos tales como:

Confidencialidad:

Datos privados de gran importancia como es el caso de la contraseña de los usuarios se cifraba mediante el uso del algoritmo md5 antes de ser almacenado en la base de datos de modo tal que aunque algún intruso pudiera acceder a la información contenida en la base no podría obtener la contraseña del usuario ya que este algoritmo de encriptación no permite realizar el proceso inverso de decodificación, es decir es de un solo sentido y por lo tanto de gran efectividad. Adjuntamos una imagen del lugar donde realizamos el proceso de encriptación empleando el helper de form validation proporcionado por el marco de trabajo de codeigniter mediante el cual se realizó nuestra aplicación.


Autenticación y Autorización:

El proceso de autenticación se realizo solicitando el nombre de usuario y la contraseña contrastándola con la información contenida en la base de datos, esta permitía que los usuarios solo accedieran a los lugares de la aplicación que su nivel de privilegio, establecida en un campo denominado con el mismo nombre (privilegio), les permitiera, es decir el proceso de autorización.  La información referente al usuario autenticado era almacenado en una cookie que acompañaba al usuario durante todo el tiempo de navegación hasta el momento en que seleccionara la opción salir para abandonar la aplicación como usuario registrado destruyendo la cookie y regresando a la pagina principal. La siguiente imagen da fe de los procesos mencionados previamente.


 
Otros Aspectos de Seguridad

Seguridad en formularios

Todos los formularios presentados a los diferentes usuarios fueron completamente validados empleando las facilidades que nos brindó el helper de form validation verificando aspectos relevantes como el password solicitándolo 2 veces para garantizar que fuera escrito correctamente y comprobando  también que la dirección electrónica proporcionada fuera adecuada, no permitiendo que se enviaran formularios incompletos o incorrectamente diligenciados e informando a los usuarios acerca de los campos faltantes o incorrectos para su oportuna corrección.


Seguridad de Filtrado

La función de filtrado de seguridad se llama automáticamente cuando un nuevo controlador se invoca. Esto repercute de la siguiente manera:
·      Se destruye el arreglo global GET. Desde CodeIgniter no se utilizan cadenas GET, no hay razón para permitirlo.
·      Destruye todas las variables globales en el caso que register_globals está activado.
·      Filters the POST/COOKIE array keys, permitting only alpha-numeric (and a few other) characters. Filtra el arreglo de claves POST / COOKIE, permitiendo sólo alfanuméricos ( y algunos otros pocos caracteres).
·      Proporciona filtrado XSS (Cross-site Scripting Hacks). Esto se puede activar a nivel global como lo hicimos en nuestra aplicación, o previa solicitud.
·      Estandariza caracteres de nueva línea  \n.

Filtro XSS

CodeIgniter incluye un filtro de prevención de Cross-site Scripting Hacks o XSS que, o bien se puede ejecutar de forma automática para filtrar todos los POST y COOKIE que se encuentra, o se puede ejecutar basado en items. Por defecto no se ejecuta a nivel global, ya que requiere un poco de sobrecarga de procesamiento, y dado que es posible que no se necesite en todos los casos.
The XSS filter looks for commonly used techniques to trigger Javascript or other types of code that attempt to hijack cookies or do other malicious things. El filtro XSS busca técnicas comúnmente utilizados para activar Javascript u otros tipos de código que intenten secuestrar cookies o hacer otras cosas maliciosas. Si algo no permitido se encuentra, es controlado con seguridad por la conversión de los datos a entidades de caracteres.
Para utilizar los beneficios de protección que brinda este filtro especial, en nuestra aplicación utilizamos el modo de activación global como se observa en la siguiente imagen.