Seguridad

Tu aplicación contra la gestión de variables inesperadas

 En entradas anteriores hice alusión al modo en el que un usuario ilegítimo de tu aplicación web puede hacer tentativas muy básicas de hacking del estilo que sigue:

http://servidor/aplicacion?administrador=TRUE

Seguro que esto te hace reflexionar sobre la importancia de no admitir y gestionar variables inesperadas, así que te muestro a continuación un pequeño código para excluir automáticamente valores inapropiados de tus scripts, pudiendo así asumir con certeza que el entorno global está saneado, incluso aunque el atacante remplace el código de tu web para enviar valores no esperados. La idea consiste en listar las variables esperadas por nuestro código en un array, y posteriormente usarlo para chequear las variables recibidas. ¡Es como una lista de invitados a una sala de fiestas pija!. Aunque este ejemplo está en PHP, como casi siempre, te recuerdo que la idea es fácilmente transportable a cualquier lenguaje de programación.

Declaración de variables y seguridad

 Son muchos los lenguajes de programación en los cuales no es necesario declarar las variables antes de que estas sean usadas. Si escribes tus códigos en un lenguaje que resulte flexible en este aspecto que te explico, y dispones de la posibilidad de configurarlo de modo que sea obligatorio declarar las variables antes de usarlas, ¡es mejor que no dejes de hacerlo!. Te muestro un código en PHP a modo de ejemplo:

Cinco detalles a cuidar al recibir datos de tus usuarios

 Son muchísimas las ocasiones en las que nuestras aplicaciones solicitan a los usuarios algún tipo de información: Nombre, correo electrónico, texto de opinión, nueva contraseña… Usualmente lo hacemos a través de formularios que contienen distintos campos a rellenar, campos que nuestras aplicaciones van a recibir y posteriormente van a procesar; por tanto, estos campos, que son manipulables por los usuarios, representan una vía a través de la cual se puede amenazar la seguridad de nuestras aplicaciones. Entonces ¿que es lo más básico a tener en cuenta al usar estos campos de entradas de datos?.

Seguridad informática absoluta y gestión del riesgo

 Es posible que después de leer lo que sigue no vuelvas a teclear con tranquilidad el número de tu tarjeta de crédito en ninguna página web, pero hoy te quiero desvelar que la seguridad absoluta no existe en la informática contemporánea. Esto es así hasta el punto de que los expertos en seguridad informática hablan de la gestión del riesgo, y no de su eliminación completa. ¿Por que?.

 No importa si programas en Java o en PHP, incluso da igual si te has decantado por hacerlo con Ruby on rails o con el Net framework de Microsoft, porque indiferentemente al lenguaje y entorno de programación que uses, finalmente todo se traduce en ceros y unos. Si, así es, todo se reduce a impulsos eléctricos gestionados por un CPU, y el pequeño cerebro de nuestra computadora no sabrá distinguir si realmente todos y cada uno de los binarios que procesa cumplen con las sanas intenciones del legítimo programador de un software en ejecución o, por el contrario, se trata de un añadido malintencionado que aprovecha la más mínima vulnerabilidad de cualquiera de los procesos que corren en el sistema. Entonces ¿es imposible crear un programa perfectamente seguro, sin vulnerabilidades?.