Está en la página 1de 8

Trabajar con cookies

1. INTRODUCCIN na forma sencilla de mantener informacin de la visita que est realizando el usuario a nuestro sitio web es a travs de lo que se conoce como cookies. El ejemplo ms claro lo tenemos cuando accedemos a un sitio de comercio electrnico. En la mayora de estos sitios web, se permite que el usuario vaya seleccionando los productos que desea comprar y finalmente realice la compra. Como en muchos casos estos productos aparecen en pginas distintas, el usuario tiene una cesta o carrito de la compra virtual donde va introduciendo sus productos.

La forma ms sencilla de mantener esa cesta o carrito virtual es a travs de cookies. Una cookie es informacin que mantenemos durante toda la visita del usuario en nuestro sitio web y que puede referirse a elecciones que ha ido efectuando, a sus preferencias, etc. Esto permite que nuestra aplicacin pueda identificar el usuario que est accediendo al sitio web y personalizar su experiencia en l. La caracterstica fundamental de utilizar cookies es el hecho de que dicha informacin se almacena en el ordenador cliente, es decir, es responsabilidad del navegador. Esto permite delegar dicha responsabilidad, liberando al servidor de la tarea de mantener esa informacin.
Copyright (c) Computer Aided Education S.A.

Trabajar con cookies

Sin embargo, aunque esto es una ventaja, tambin se corre el riesgo de que el usuario modifique dicha informacin o incluso de que la elimine. Por ello, un sitio dirigido al comercio electrnico tiene que estar preparado para esta circunstancia. En esta leccin estudiaremos las cookies. Ms tarde, veremos formas alternativas de mantener la misma informacin, pero almacenndola en el servidor.

2. CREAR COOKIES

omo se ha indicado en el captulo anterior, es responsabilidad del navegador el mantener las cookies.

Sin embargo, su creacin parte desde el servidor, cuando se atiende una peticin de pgina web que utiliza cookies. Cuando se inicia por primera vez una sesin, el servidor enva una cookie al navegador del usuario y cada vez que el navegador del usuario solicite una pgina de ese servidor, se volver a enviar la cookie al servidor, el cual puede leer la cookie e identificar el navegador del usuario.
Realmente las cookies no estn relacionadas con una pgina o un servidor web especfico sino con un determinado dominio. Por ejemplo, accediendo al sitio web www.elcorteingles.es, seguramente tendremos en nuestro equipo una cookie relacionada con el dominio elcorteingles.es.

Para crear cookies, se utiliza la coleccin Cookies del objeto Response, mientras que para obtener su valor actual, se utiliza la coleccin Cookies del objeto Request. Vamos a escribir cdigo para crear cookies que nos permitan recordar al usuario que accede a la pgina cundo fue la ltima vez que la visit. Esto suele aparecer en sitos seguros, como banca electrnica, donde es importante recordar cundo se accedi por ltima vez.
Private Sub Page_Load(...) Handles MyBase.Load Dim FechaAnterior, HoraAnterior, VecesVisitada As String If Request.Cookies("Veces") Is Nothing Then Response.Cookies("Veces").Value = 1 2

Trabajar con cookies

Else Response.Cookies("Veces").Value=Request.Cookies("Veces").Value+1 VecesVisitada = Request.Cookies("Veces").Value + 1 FechaAnterior = Request.Cookies("Momento")("Fecha") HoraAnterior = Request.Cookies("Momento")("Hora") End If End Sub

Aqu vemos cmo se accede y cmo se crea una cookie. Utilizando la coleccin Cookies del objeto Request, hemos accedido al valor de la cookie Veces. Comprobamos si dicho valor no existe todava (is Nothing), en cuyo caso, se entiende que es la primera vez que se accede a la pgina. Entonces, creamos la cookie utilizando la coleccin Cookies del objeto Response y le damos el valor 1. En el caso de que no sea la primera vez, simplemente incrementamos el valor de la cookie Veces y tambin guardamos el valor en la variable VecesVisitada. En ocasiones es interesante crear cookies con subvalores. Esto es as porque slo disponemos de 4 KB para el total de la coleccin Cookies, ya que ste es el tamao que permite la mayora de navegadores. Por ello, podemos reducir la informacin enviada al servidor creando cookies con subvalores, tambin conocidos como diccionarios:
FechaAnterior = Request.Cookies("Momento")("Fecha") HoraAnterior = Request.Cookies("Momento")("Hora")

La cookie Momento tiene dos subvalores: el valor Fecha y el valor Hora. Observe cmo hemos accedido a ellos. La misma sintaxis se utiliza para crear la cookie con subvalores.
Now es una propiedad compartida (shared) que nos proporciona la fecha y hora actuales, por lo que no es necesario crear un objeto de tipo DateTime para acceder a ella.

Response.Cookies("Momento")("Fecha") = _ DateTime.Now.ToLongDateString() Response.Cookies("Momento")("Hora") = _ DateTime.Now.ToLongTimeString()

As, hemos modificado (o creado, si es la primera vez) la cookie Momento, estableciendo sus subvalores Fecha y Hora a la fecha y hora del servidor. Para ello, se han utilizado los mtodos ToLongDateString y ToLongTimeString del objeto que representa la fecha y hora actual, es decir, de Now.
3

Copyright (c) Computer Aided Education S.A.

Trabajar con cookies

3. CADUCIDAD DE LAS COOKIES a caracterstica ms importante de una cookie es su caducidad. Utilizando su propiedad Expires, podremos determinar hasta cundo es vlida. Si no se utiliza dicha propiedad, la cookie se mantiene viva mientras dura la visita del usuario a nuestro sitio web, es decir, hasta que cierre el navegador, ya que se guarda en la memoria de ste.
If FechaAnterior <> String.Empty Then Response.Write("Usted visit esta pgina por ltima vez el <B>" & _ Server.HtmlEncode(FechaAnterior) & "</B>, a las <B>" & _ Server.HtmlEncode(HoraAnterior) & "</B>.") Response.Write("<BR>La ha visitado un total de: <B> " & _ Server.HtmlEncode(VecesVisitada) & _ " <B> veces.") Else Response.Write("Bienvenido a nuestra pgina web.") End If

En el caso de que no sea la primera visita a la pgina, le indicamos cul fue su ltimo acceso y las veces que la ha visitado. Siempre que se quiera mostrar informacin proveniente del usuario en una pgina web, es conveniente aplicar primero el mtodo Server.HtmlEncode. Esto impide, en la mayora de casos, que un usuario malintencionado pueda introducir cdigo malicioso en los datos que introduce en un formulario o, como este caso, en una cookie. Con este cdigo conseguiremos ver cmo se comportan las cookies creadas. As, podremos ver cul fue el ltimo acceso y cuntas veces ha accedido a la pgina. Sin embargo, sin utilizar la propiedad Expires, las cookies se pierden cada vez que se cierra el navegador, ya que slo se guardan en la memoria de ste.
Dim FechaCaducidad As DateTime FechaCaducidad = DateTime.Now.AddDays(7) Response.Cookies("Veces").Expires = FechaCaducidad Response.Cookies("Momento").Expires = FechaCaducidad

Fjese que los valores que se almacenan en las cookies son siempre de tipo String por lo que las variables FechaAnterior, HoraAnterior y VecesVisitada son cadenas de texto.

Trabajar con cookies

Para eliminar una cookie, establezca su fecha de caducidad a una fecha anterior de la actual.

Sin embargo, a la hora de aplicar la caducidad, es necesario utilizar una expresin de fecha, por lo que la variable FechaCaducidad es del tipo DateTime. Utilizamos el mtodo AddDays para aadir 7 das a la fecha actual (obtenida mediante Now). De esta forma, haremos que la cookie tenga un perodo de vigencia de una semana.

4. DEPENDENCIA DEL NAVEGADOR as cookies no son la mejor forma de almacenar informacin de estado, principalmente porque se hace en el ordenador del usuario, donde no podemos tener el control necesario. Sin embargo, este mtodo se utiliza por su sencillez. Uno de los problemas que presentan es la dependencia del navegador. As, las cookies que se almacenan en memoria slo estn disponibles para la instancia del navegador en la que se han creado. En el caso de las cookies guardadas en disco duro, todas las instancias del navegador pueden acceder a ellas. Como existe la posibilidad de que las cookies se almacenen en el disco duro del usuario, el navegador permite que sea el usuario quien decida si esto es posible o no. Por ejemplo, en Internet Explorer esto lo podemos hacer en la ficha Privacidad de sus opciones. La configuracin predeterminada de Internet Explorer es Media, en la cual se permiten las cookies del sitio web pero no las de terceros. Con cookies de terceros se hace referencia a aquellas cookies que no provienen del dominio correspondiente al sitio web al que se est accediendo. Esto es frecuente en Internet, donde nos podemos encontrar con ventanas emergentes que aparecen, sin que lo hayamos solicitado, en muchas pginas web.
Copyright (c) Computer Aided Education S.A.

Trabajar con cookies

Estas ventanas presentan anuncios, promociones, etc., pero tambin tienen el objetivo de poder alojar cookies en nuestro equipo. La configuracin de Internet Explorer respecto de estas cookies es de no permitirlas. A medida que configuramos una poltica de privacidad ms estricta, menos cookies sern aceptadas por Internet Explorer. En el caso extremo no se aceptara ninguna. Tambin puede establecer la poltica de admitir o no cookies desde el cuadro de dilogo que aparece al pulsar en Opciones avanzadas, pero slo afectar a las nuevas cookies. Como ve, si nuestro sitio web utiliza cookies, existe la posibilidad de que las aplicaciones no funcionen bien, ya que el usuario puede haber decidido desactivar esta caracterstica.

Trabajar con cookies

Pero esto no es todo. Cada navegador guarda las cookies de forma diferente, por lo que podra darse el caso de que un usuario accediera a un sitio web a travs de un navegador y utilizara un navegador distinto al da siguiente: el ltimo navegador no hara uso de las cookies almacenadas en el equipo.
As, Internet Explorer almacena las cookies en una carpeta llamada Cookies del directorio de su perfil de usuario. En Windows 98 o Windows Millennium esta carpeta suele estar en el directorio de Windows. A partir de Windows 2000 (incluyendo XP), ser una subcarpeta de Documents and Settings\Usuario, donde Usuario es el nombre del usuario que est accediendo al sistema. El nombre de un archivo de cookie es como el siguiente: administrador@servidorweb.txt y su contenido: Veces4servidorweb/102418806374429688511379709380829 687102*MomentoFecha=martes, 18 de enero de 2005&Hora=10:20:00servidorweb/102418806374429688511 379719380829687*

5. CARACTERSTICAS DE LAS COOKIES Las cookies incrementan el trfico en la red, ya que en cada peticin HTTP que realiza el navegador, se incluyen las cookies que coinciden con el dominio al que se accede. Las cookies incrementan el tiempo de respuesta del servidor, ya que el servidor tiene que recoger la informacin de cookies y crear la coleccin Cookies del objeto Request. Las cookies son dependientes del equipo en el que se crean: tenga en cuenta que un usuario podra utilizar distintos ordenadores, mientras que las cookies almacenadas en disco duro estaran siempre en el equipo donde se han creado. En definitiva, las cookies permiten que el servidor identifique un navegador, pero no directamente a un determinado usuario. Las cookies pueden sufrir alteraciones: al estar almacenadas en el equipo del usuario, ste es libre de modificarlas.
Copyright (c) Computer Aided Education S.A.

Trabajar con cookies

Las cookies son seguras, ya que el navegador slo las enva al servidor del sitio web que las ha creado, por lo que no pueden ser recibidas en ningn otro sitio. Podemos aplicar caractersticas de seguridad al enviar y recibir cookies. Para ello, se utiliza el protocolo SSL, que encripta el contenido de las cookies, consiguiendo que no sea fcil descifrarlas.

También podría gustarte