tecnologías

Por Daniel Varela
deweb@deweb.com.ar
¿Galletas..? ¿galletas..? argrr... ¡galletas!
Cookies: (Monstruo comedor de galletas - Plaza Sésamo)

¿Qué es un "cookie"?

Sabido es que el protocolo usado para pedir y recibir páginas en la Web no es una conexión continua: requerimos algo del server, nos llega -o no-, y la conexión con el server se corta. Esto determina que no hay manera de salvar o conservar un determinado estado en la situación de una conexión; si tan pronto como recibo la respuesta, oprimo un botón ordenando algo, el estado anterior es olvidado. Hay varios métodos para que esto pueda ser evitado. Uno consiste en un desarrollo específico de Netscape llamado "cookies".

Un "cookie" es un pequeño trozo de información enviado por un server de Web al browser de un usuario. Cuando Ud. visita un server que utiliza el desarrollo denominado Magic Cookie (MC), éste instruye al browser de su PC para crear un archivo Magic Cookie al que se lo suele nombrar como cookies.txt o similar. En él, ingresa y queda una pequeña cantidad de información.

Por ejemplo, dicho bloque de datos podría contener un identificador exclusivo para el usuario generado por el servidor, la fecha y hora actual, la dirección IP del proveedor del servicio de acceso a Internet mediante el cual la PC del usuario se conecta a la red, o cualquier otro grupo de datos que se desee.

El browser que ha recibido dicho cookie lo reenviará al server cada vez que ingrese a la página HTML que lo originó. Es importante tener en cuenta que el browser regresará el cookie únicamente al server que lo seteó. Esto significa que el sitio que fijó el cookie no tiene forma de conocer si su browser contiene otros cookies y, en caso afirmativo, cuáles son los sites que los han seteado.

Repasemos, entonces: cuando un server envía un objeto HTTP a un cliente, puede también mandar una pieza de información del estado de circunstancias de la conexión (state), que el cliente almacenará. Incluída en este "state object" hay una descripción del rango de las URL para las que dicho estado es válido. Cualquier futuro requerimiento HTTP hecho por el cliente que caiga en dicho rango incluira la devolución del texto del "state object" al server. Ese "state object" es el llamado cookie.

En suma, Magic Cookie es un mecanismo usado por aplicaciones del server, como scripts CGI, para almacenar y recuperar información del lado cliente de la conexión de red. La adición de un "banco" de estados simple y duradero del lado cliente, extiende significativamente las capacidades de las aplicaciones cliente-servidor basadas en la WWW.

Pero... ¿para qué se usan?

A los cookies se les encuentra gran cantidad de aplicaciones: es posible, tras preguntar el nombre de quien accede a una página, ingresarlo a un cookie seteado en un directorio del browser del cliente. El día en que dicho usuario retorne, la información será usada para saludarlo de manera personalizada. O, a los visitantes que no deseen ver ninguna de las tan comunes "banners" publicitarias, se les ofrece desde el site optar por tal posibilidad, y de allí en adelante (hasta que el cookie expire) deja de verlas.

(En sitios de noticias tipo ZD Net, el archivo Magic Cookie deja saber al server quién es Ud. en sus subsiguientes visitas, posibilitando recorrer páginas armadas a su propio gusto de lector). Es posible respaldar un sistema de ventas on-line usando cookies que conserven la información de lo que quiere comprar una persona: si alguien invierte largo rato revisando un amplio stock de Discos Compactos, y repentinamente tiene que dejar la red, puede recuperar esos datos aun cuando regrese recién semanas después.

Para ver una demostración de cómo actúa esto, eche un vistazo a la Kid's Personal Info Page. Esta página permite a los chicos elegir sus propias áreas de interés. Luego, la aplicación crea una página de información personalizada basada en su elección. Esto existe a nivel adultos, lo que se puede observar en Personal Excite Page y Microsoft NetworkPage.

Una situación particular se plantea al aplicar Magic Cookie al seguimiento de sitios de Web, ya que mucha gente considera invadida su privacidad si el diseñador de un sitio quiere ver qué le interesa. El rastreo o seguimiento del sitio puede mostrar al diseñador "puntos finales" o "callejones y salida", lugares a los que la gente llega para desaparecer al no encontrar "el" link interesante conque seguir enganchado. (Esta aplicación de los cookies suele también dar cuentas más seguras de cuánta gente ha pasado por cada una de las páginas de un sitio).

Claro que un mal uso de Magic Cookie conlleva sus trastornos. Un servicio de spamming -compañia que envía avisos por e-mail a diestra y siniestra- con acceso (desde adentro) a sitios de Web más o menos populares, puede usar información obtenida originalmente por MC para reunir y organizar datos de marketing o apuntar con propósitos publicitarios a usuarios específicos.

Acerca de la seguridad

Un cookie de HTTP no puede ser usado para conseguir datos de su disco duro, ni para obtener su dirección de email o hurtar información delicada sobre su persona. En realidad no pueden conseguir nada que no fuera puesto allí por el server. Para lograr eso es preciso usar otras tecnologías.

Los servidores de Web que Ud. visite podrían aceptar aceptar su número de tarjeta de crédito o passwords que envíe a ese sitio, y aunque pueden poner esa información en el archivo cookie de su PC sin que Ud. se entere, todo está diseñado para que ningún sitio pueda acceder a la información del cookie depositado por otro sitio. Sus números de tarjeta de crédito y passwords no están ni más ni menos seguros que si los tipea y los envía a través de la red.

Tampoco debe olvidarse que los cookies son sólo texto, por lo que no pueden hacer nada por sí mismos. Nada que ver con Java o JS. Los cookies son texto guardado en un archivo, y tienen limitaciones en cuanto a su número y tamaño. No son un programa, como tampoco son programas los archivos HTML. Grabar en disco un cookie no hará nada a su máquina.

Tampoco se puede contraer un virus de un cookie.

Para lo que un cookie de HTTP sí puede ser usado es, ya lo dijimos, para rastrear su itinerario cuando Ud. navega por un sitio en particular. Si bien este seguimiento de sitio puede ser hecho fácilmente sin usar cookies, su uso hace al tracking de los datos un poco más consistente.

Si no desea que un server seteee cookies puede lograrse un aviso previo: por ejemplo, en el Explorer 5.0, seleccionar dentro del menu Herramientas = Opciones Internet = Seguridad = Personalizar nivel = Cookies = Desactivar.

Si un cookie permanece residiendo en su sistema, puede borrarlo cuando quiera. Basta con ubicar el archivo mencionado, editarlo y eliminar varias líneas o todo su contenido.

Si el archivo cookie es bloqueado (por ejemplo, protegiéndolo contra escritura cambiando su atributo), al cerrar Netscape/Microsoft IE los datos no podrán trasladarse desde la RAM hasta el archivo cookies.txt .

El no aceptar cookies no traerá inconvenientes en la mayoría de los sitios.

Sólo que, al no verlo, el server en cada oportunidad preguntará por él, asumiendo que Ud. es un nuevo visitante. O puede que algunos sitios -en especial, de compras- Ud. no sea habilitado para recorrerlo a menos que acepte el cookie.

¿Con cuáles browsers actúan?

La mayoría de los usuarios de Internet utilizan Netscape, o Microsoft IE. Desde hace tiempo, estos dos browsers han estado dando soporte al Cookie HTTP. Digital Equipment Corp tiene un script que testeará su browser para ver si acepta un cookie. Quien no desee realizar otras pruebas adicionales puede ver directamente los resultados.

¿Por qué ese nombre?

Nos cuenta Gerry Boyd que el término proviene del "monstruo de las galletas" de Plaza Sésamo, y que ya en los mainframes de los 70 existía una vieja versión que, en sistemas de tiempo compartido, colgaba la terminal de un usuario exhibiendo el mensaje "Quiero una galleta" ("I want a cookie").

El usuario entonces estaba forzado a tipear una respuesta correcta, tal como "galleta" ("cookie"), "aquí tienes tu galleta" ("here's a cookie") o expresiones parecidas, hasta finalmente liberar su terminal.

Robert E. Maas relata lo siguiente: "Yo vi el COOKIE PUMA (y otros animales) en el MIT-MC al final de los 70. En lugar de colgar la terminal mandaba mensajes online, primero cada pocos minutos, luego más rápido y más rápido, como si estuviera demandando sus galletas.

Para terminar con eso, Ud. debía enviar a PUMA un mensaje online conteniendo la palabra COOKIE, -en algunos casos se tipeaba el comando de sistema: SEND PUMA COOKIE- o simplemente podía esperar hasta que cumpliera su ciclo, y eventualmente dijera que ahora no quería la galleta (tipo "las uvas están verdes": como no obtiene la galleta, entonces hace como que no le interesa).

¿Dónde encontrar cookies?

El Cookie Taste Test de Robert Brook ofrece un catálogo de páginas con cookies.

El sitio de David Ray The Dive usa cookies, y un método para registrarse gratuítamente que sólo utiliza su nombre y aparentemente efectúa algún seguimiento sobre los usuarios de los últimos 30 días. Parece usar cookies en estrecha dependencia con Javascripts para obtener botones de control Adelante-Atrás y otras prestaciones. Su generador para tarjeta Oblique estrategies es una buena combinación de cookies y Javascript. El Netscape Store usa cookies para almacenar información en una suerte de canasta comercial.

Especificaciones en los cookies

Un cookie se introduce al cliente mediante la inclusión del encabezamiento Set-Cookie como parte de una respuesta de HTTP. Este mecanismo es tíipicamente generado por un script CGI.

Hoy hablábamos de editar el archivo cookies.txt Este resumen nos servirá para interpretar lo que encontremos. Si se desea un análisis más profundo puede recurrirse a la publicación (en inglés) de Netscape Cookie Specs

Encabezamientio del Set-Cookie HTTP Response:
Set-Cookie: NAME=cualquiera; expires=FECHA; path=RUTA; domain=NOMBRE_DE_DOMINIO; secure

NAME=el que fuere.
Este es el NOMBRE y contenido de sus datos. Ambos pueden tener cualquier característica. Si, por ejemplo, usare el nombre 'Count' y el contenido fuese un número que se incrementa cada vez que el usuario carga la página, se vería como: 'Count=1'

expires=FECHA
Esta es la fecha en que expirará el cookie en relación a GMT. Si no fuera seteada, entonces el desaparecería cuando el usuario termina su sesión. Es necesario que respete la siguiente sintaxis: 'Wednesday, 09-Nov-1999 23:12:40 GMT'

path=RUTA
El atributo path, si se lo especifica, dirá al browswer retornar el cookie solamente si el browser requiere por lo menos una URL de ese path. Esto signifioca que si se setea un cookie con 'path=/monkey' el cookie sólo será retornado en caso de que el browser requiera una URL en el path '/monkey' o más adelante, como '/monkey/lovin'. Si no es especificado path, entonces el path será automáticamente seteado al mismo path como el requerimiento original. Si se quiere que un cookie sea enviado con cada requerimiento a su server se indica la raíz de dicho server como path.
Ej.: 'path=/'

domain=NOMBRE_DE _DOMINIO
Dominio para el cual el cookie será retornado. Necesita contener por lo menos 2 puntos. Ej.: '.andy.com' Esto significaría que 'www.andy.com' es tan válido como 'dookie.andy.com' Ej.: 'domain=.illuminatus.com'

secure
Si el cookie está marcado secure sólo será transmitido estando sobre un servidor secure. Si no tiene un servidor secure, no ponga nada.

Links útiles

C|Net: The Truth About Cookies (Christopher Barr)
PCWeek: Are Web-based Cookies a treat or a recipe for trouble? Eamonn Sullivan
Tom Vrankar tiene una interesante página con ejemplos sobre Java and Cookies e incluye una demostración de cómo actúan los cookies.
Javascript Tip of the Week habla sobre Using a Browser's Cookie.
Andy's Netscape HTTP Cookie Notes incluye algunas notas sobre diferencias en el manejo de cookies entre Netscape y MS IE.
Matt's Script Archive: HTTP Cookie Library

Algunas páginas con ejemplos de Bill Dortch en Javascript :

Code: http://www.hidaho.com/cookies/cookie.txt
Demo: http://www.hidaho.com/cookies/cookie.php
How to make cookies and shopping cart
El Apache web server tiene un CookieLog module opcional para trabajar con Cookies.
Netoffice tiene una página listando algunos work with cookies que hicieron para algunos de sus clientes.
MacPerl Q&A Dónde obtener MacPerl y punteros a otros recursos.
HTTP Cookie Spec Netscape describe el cookie HTTP.
Malcolm's Guide to Persistant Cookies Colección de links.
Matt's Script Archive Librería de Cookie HTTP para Perl.
Cookie Servers Avise aquí sobre los servers que seteen cookies.
Nice Cookie Article por Jasmin Consulting Corporation.
Jon Weiderspan's Macintosh WWW Development Guide
Web Developer Magazine
HTML Quick Reference Guide
RGB Hex Triplet Chart
Smiley's CGI/PERL page
Browsers, Viewers and HTML prep Resources
Tom Christiansens' Mox.Perl.COM
Hypertext Transfer Protocol--HTTP/1.0
The Perl FAQ Todo lo que ud. desea hacer, aquí está.
Cookie Monster Borra archivos cookie cuando ud. arranca su Mac.

más notas

imprimir nota

Información: info@caminandoutopias.org.ar


mail2web.com - Lea su correo electrónico

Lea todos sus correos POP3 desde cualquier equipo, en cualquier lugar del mundo.
¡Sin necesidad de registrarse!

Creative Commons License This work is licensed under a Creative Commons License.