Consideraciones de Seguridad

Cuando se  desarrollan aplicaciones web, por lo general  nos concentramos  más en las funcionalidades y se descuida  un aspecto muy importante como lo es  la seguridad, y al estar  disponibles  en  Internet, se hacen  susceptibles a todo tipo de usuarios, algunos de los cuales no llegan con buenas intenciones, sino para hacer daño a través de distintas practicas como lo son    la inyección de código SQL, el Cross Site Scripting, la manipulación de variables y la explotación de funcionalidades importantes como el recordatorio de contraseñas, por solo mencionar algunas de las más usadas para hacer vandalismo informático.
Teniendo en cuenta que una aplicación web no solo debe cumplir a cabalidad con las funciones para las cuales fue creada, sino que debe también  proteger la información, es importante la  confidencialidad, integridad, autenticación, autorización, disponibilidad y privacidad que ayudaran a salvaguardar la información. 
Dentro de nuestra aplicación web se tuvieron en cuenta los siguientes aspectos:
  • Autenticación: Es el proceso de verificación de la identidad de una persona  (login/password). Este aspecto se tuvo en cuenta en nuestra aplicación ya que se manejaron dos roles,  el de administrador y usuario Idis.
  • Autorización:   Se refiere a los privilegios de cada uno de  los usuarios de la aplicación. El administrador tiene como su mayor privilegio la gestión de usuario, por medio del cual  adiciona, modifica  y elimina miembros de la aplicación. De igual forma gestiona su perfil,  maneja su propio calendario  en cual se pueden colocar actividades públicas y privadas; gestiona su libreta de direcciones,  y administra sus archivos, lo que implica subir, eliminar y descargar. El usuario Idis difiere sólo en que el no puede gestionar los usuarios, las demás funcionalidades son idénticas a las del administrador. Si una persona intenta ingresar por la url  no estando autenticado, no podrá acceder a ninguna de las páginas donde se requiere autenticación, ya que el sistema se encuentra blindado contra este tipo de accesos, además si una persona se autenticó como usuario Idis no podrá ingresar por la url a las páginas del administrador, ya que sólo están habilitadas las de usuario Idis y de la misma forma ocurre con el administrador.
  • Disponibilidad: La aplicación está diseñada para estar disponible  los 7 días de la semana a cualquier hora del día.
  • Privacidad: Implica  confiabilidad de los datos al solo permitir que sean  accedidos por sus propietarios. En la aplicaciones es visto en las diferentes funcionalidades que se ofrecen a los usuarios, como es el  caso de la libreta de direcciones, el calendario, que tienen la posibilidad de manejar a  voluntad si  una actividad es  pública o privada y  el gestor de archivos, en donde los archivos que se suben son accedidos por los usuarios de la aplicación.  Una excepción en la privacidad  de la información es el gestor de usuarios, pues la información del perfil  de cada uno de los miembros no sólo es  accedida por ellos, sino también por el administrador, algo que se estableció como regla del negocio siendo así otra funcionalidad del administrador.

Algo más a tener en cuenta es que los errores de la aplicación y el desconocimiento de estos por los usuarios, no garantizan seguridad, pues el simple hecho de ocultar algo no impide que a mediano o largo plazo llegue a ser descubierto aunque tampoco es ninguna garantía que no será descubierto a corto plazo.  Además,  teniendo en cuenta que  la entrada y salida de información es el principal mecanismo que dispone un atacante para enviar o recibir código malicioso contra el sistema, las características de los datos de entrada se han predefinido, permitiendo su verificación cada vez que se trata de ingresar información en la base de datos. Dentro de las consideraciones que se tienen en cuenta para impedir código malicioso está el restringir la longitud de las cadenas e   impedir que se ingresen caracteres  “<” y “>”, pues los  script se caracterizan por tenerlos obligatoriamente.
Finalmente, las funcionalidades que se tienen para impedir el  código malicioso fueron reutilizadas de los componentes que provee  kumbiaFramework siendo estos de confianza para este propósito, ya  que resuelven el problema de forma correcta.