Cookies, esas grandes desconocidas (1)
Las cookies pueden parecer simples pares de clave-valor, pero en realidad esconden mucho mas. En estas entradas veremos varias consideraciones de seguridad de las cookies y de como asegurarlas en nuestro servidor. Aquí no se va a discutir nada acerca de su uso para mantener la sesión o para almacenar datos del usuario (aunque se puede comentar de pasada)
Para empezar las cookies son datos que nos envía un servidor y que se almacenan en nuestro equipo con una serie de campos requeridos y opcionales. Estos son los mas comunes:
- Nombre y valor: Este es el sentido real de las cookies, almacenar información a la que podamos acceder mediante un nombre. Evidentemente este es el único valor requerido por las especificaciones.
- Host: Este campo opcional define el host al cual se van a enviar las cookies. Esto es importante para que distintos dominios no accedan a las mismas cookies.
- Path: Otro campo opcional que nos permite limitar aun mas el radio de acción de las cookies, reduciendo su campo de acción a la ruta especificada.
- Secure: Este parámetro es bastante importante y lo discutiremos en la siguiente entrada en profundidad, pero para que os hagais una idea, una cookie marcada como segura no se enviara en conexiones HTTP.
- Caducidad: Las cookies se almacenan en nuestro equipo (navegador) durante un cierto periodo de tiempo. Se pueden poner fechas a largo plazo o marcarlas como que caduquen al final de la sesión, lo que es igual a cerrar el navegador (¡que no la pestaña!)
- httpOnly: Esta marca para las cookies no es estándar aunque va siendo un estándar de facto. Propuesto inicialmente por Microsoft para IE, posteriormente otros navegadores como Firefox lo han ido implementando. La idea es simple, nuestras cookies se envían mediante peticiones HTTP como habitualmente, pero no se puede acceder a ellas mediante el objeto document.cookie de Javascript. Mas sobre esto mas adelante.
Nuestras cookies se almacenan en distintas partes y en distintos formatos dependiendo del navegador que usemos. Mientras que en IE son unos simples ficheros de texto, en Firefox son almacenadas en un fichero SQLite. Para Firefox usaremos extensiones como Web Developer, Firecookie para Firebug o Add N Edit Cookie mientras que para IE deberemos de hacer uso de herramientas como Galleta para realizar un volcado mas “amigable” de los ficheros que se generan en el directorio (en Windows Vista) C:\Users\<usuario>\AppData\Roaming\Microsoft\Windows\Cookies\Low
En breve (o no) mas!
Hola:
Excelente tema y las explicaciones pues, mas claras considero que no hay otra forma, sumamente entendible.
Desde ya solicito tu autorización para hacer el enlace correspondiente.
En espera de tu comentario,
Atentamente,
R.Gonzalez.
Por supuesto Hugo, sin problemas.
Un saludo!