Blog

Ardilla Quio Ardilla Quio

04 de Julio de 2011

Directivas PHP: safe_mode

Dice la documentación oficial de PHP que la directiva safe_mode es un intento de resolver un problema de seguridad en servidores compartidos. Y aunque sí mejora la seguridad no resulta una práctica infalible, ya que lleva a muchos proveedores de Internet (ISP) y programadores a pensar que están a salvo de amenazas de seguridad. Esto no debe ser del todo cierto cuando la comunidad PHP la ha declarado obsoleta en la versión 5, y no estará presente en la versión 6.

16 de Febrero de 2011

Encriptar y guardar contraseñas en base de datos

Siempre que se diseña una aplicación que necesite identificación de usuarios se suscita la duda de si utilizar un sistema de autenticación externo (Facebook, Google , OpenId, ...) o un sistema de autenticación propio. Cuando se utiliza un sistema de autenticación propio, se plantea el problema de la seguridad a la hora de guardar las contraseñas de los usuarios en nuestra base de datos.

14 de Enero de 2011

Seguridad de las sesiones en PHP: Cross-Site Session Transfer

Cross-Site Session Transfer (transferencia de sesión entre sitios) es un tipo de ataque que, dada su naturaleza, sólo puede darse en servidores compartidos. El ataque se basa en utilizar la sesión creada en una aplicación web en la cuenta del atacante para acceder a una aplicación web (que debe tener una implementación de las sesiones del sistema de autenticación similar) de otro usuario en el mismo servidor.

Es decir, poniendo como ejemplo de aplicación web una tienda virtual (como el osCommerce), un usuario que tenga su tienda virtual en un servidor compartido podría acceder como administrador en su propia tienda y luego utilizar esa sesión para acceder como administrador a la tienda virtual de otro usuario.

23 de Diciembre de 2010

Seguridad de las sesiones en PHP: Session Fixation

Session fixation (fijación de sesión) es un método de Session hijacking (robo de sesión) un poco especial, ya que, si normalmente en el robo de sesión se intenta conseguir el identificador de sesión de un usuario ya autenticado, la fijación de sesión se basa en asignar un identificador de sesión conocido a un usuario antes de que se autentique.

Por hacer una analogía: el robo de sesión es como intentar robar la clave de una tarjeta de crédito, mientras que la fijación de sesión es intentar que la víctima cambie su clave a un número dado (y por lo tanto conocido) por el atacante.

Lo malo de este ataque es que es muy fácil de realizar. Lo bueno, es que es muy fácil de prevenir.

13 de Diciembre de 2010

Seguridad de las sesiones en PHP: Session Hijacking

Session Hijacking (secuestro o robo de sesión) se refiere a que un individuo (atacante) consigue el identificador de sesión entre una página web y un usuario, de forma que puede hacerse pasar por este y acceder a su cuenta en esa página web.

El robo de la sesión puede conseguirse de varias formas, aunque en este artículo nos centraremos en las que tienen que ver con las vulnerabilidades de las sesiones y en algunas técnicas para mitigarlas.

19 de Noviembre de 2010

Sesiones en PHP: qué son y cómo funcionan

En este artículo intentaré explicar, de la forma más simple posible, qué son las sesiones en PHP, cómo funcionan y cómo las implementa el servidor web. El objetivo de este artículo no es explicar cómo usar sesiones, sino comprender la mecánica del funcionamiento, para entender cómo actúan los ataques contra ellas.

Este artículo está orientado a gente con pocos conocimientos sobre el tema, así que en ocasiones simplificaré ciertos detalles sabiendo que lo que digo es sólo media verdad (como cuando te enseñaban que no existía la raíz cuadrada de un número negativo).