¿Qué son las cookies?
Una cookie es un pequeño fragmento de texto que acompaña a las solicitudes y a las páginas mientras éstas se transmiten del servidor Web al explorador y viceversa. La cookie contiene información que la aplicación Web puede leer cada vez que el usuario visita el sitio.Escribir cookies
Response.Cookies("NombreUsuario").Value = "Carlos"
Response.Cookies("NombreUsuario").Expires = DateTime.Now.AddDays(1)
Controlar el ámbito de las cookies
De forma predeterminada, todas las cookies de un sitio se almacenan juntas en el cliente y todas ellas se envían al servidor con cualquier solicitud para ese sitio. Es decir, cada página de un sitio obtiene todas las cookies para ese sitio. Sin embargo, puede establecer el ámbito de las cookies de dos maneras:
Limitar el ámbito de las cookies a una carpeta
del servidor, lo que le permitirá limitar las cookies a una aplicación del
sitio.
Response.Cookies("NombreUsuario").Value
= "Carlos"
Response.Cookies("NombreUsuario").Expires
= DateTime.Now.AddDays(1)
Response.Cookies("NombreUsuario").Path
= "/Administrador"
Establecer el ámbito en un dominio, lo que le
permitirá especificar los subdominios de un dominio que pueden tener acceso a
una cookie.
Response.Cookies("NombreUsuario").Value = DateTime.Now.ToString()
Response.Cookies("NombreUsuario").Expires = DateTime.Now.AddDays(1)
Response.Cookies("NombreUsuario").Domain = "support.upoli.edu.ni"
Eliminar las cookies
No es posible eliminar directamente una cookie. En su lugar,
el proceso que se debe seguir consiste en crear una nueva cookie con nuevos
valores y, a continuación, enviarla al explorador para que sobrescriba la
versión antigua en el cliente.
En el ejemplo de código siguiente se muestra cómo modificar
el valor de una cookie que almacena un recuento de las visitas del usuario al
sitio:
Dim aCookie As HttpCookie = Request.Cookies("NombreUsuario")
aCookie.Values.Remove("NombreUsuario")
aCookie.Expires = DateTime.Now.AddDays(-1)
Response.Cookies.Add(aCookie)
Al llamar al método Remove de la colección Cookies se
elimina la cookie de la colección en el servidor, por lo que la cookie no se
enviará al cliente. Sin embargo, el método no quita la cookie del cliente si ya
existe allí.
Cookies con varios valores
Puede almacenar un valor en una cookie, como el nombre de usuario y la última visita. También puede almacenar varios pares de nombre y valor en una sola cookie. Estos pares de nombre y valor se denominan subclaves. (Las subclaves se disponen de forma similar a una cadena de consulta en una dirección URL.) Por ejemplo, en lugar de crear dos cookies independientes denominadas userName y lastVisit, puede crear una sola cookie denominada userInfo que tenga las subclaves userName y lastVisit.Son varias las razones que hacen aconsejable el uso de subclaves. En primer lugar, es conveniente colocar la información relacionada o similar en una sola cookie. Además, dado que toda la información está en una sola cookie, los atributos de ésta, como la caducidad, se aplican a toda la información. (A la inversa, si desea asignar distintas fechas de caducidad a distintos tipos de información, debería almacenar ésta en cookies independientes.)
Además, una cookie con subclaves también le ayudará a limitar el tamaño de los archivos de cookies. Tal y como se ha indicado en la sección "Limitaciones de las cookies", las cookies generalmente están limitadas a 4096 bytes y no se pueden almacenar más de 20 cookies por sitio. Si utiliza una sola cookie con subclaves, empleará menos de las 20 cookies asignadas a su sitio. Además, una sola cookie ocupa unos 50 caracteres para la sobrecarga (información de caducidad, etc.), más la longitud del valor que almacene en ella, cantidades que hay que restar del límite de 4096 bytes. Si almacena cinco subclaves en lugar de cinco cookies independientes, evita la sobrecarga de las cookies independientes y puede ahorrar alrededor de 200 bytes.
Para crear una cookie con subclaves, puede utilizar una variación de la sintaxis que se emplea para escribir una sola cookie. En el ejemplo siguiente se muestran dos maneras de escribir la misma cookie, cada una con dos subclaves:
Response.Cookies("userInfo")("userName") = "patrick"
Response.Cookies("userInfo")("lastVisit") = DateTime.Now.ToString()
Response.Cookies("userInfo").Expires = DateTime.Now.AddDays(1)
Su lectura se realizara de la misma forma:
Label1.Text
= Request.Cookies("userInfo")("userName")
Limitaciones de las cookies
La mayoría de los exploradores admiten cookies de un tamaño máximo de 4096 bytes. Debido a este límite, es recomendable utilizar las cookies para almacenar pequeñas cantidades de datos, o mejor aún, un identificador como un id. de usuario. Este id. se puede utilizar para identificar al usuario y leer información relativa a éste de una base de datos u otro almacén de datos.Los exploradores también imponen limitaciones respecto al número de cookies que cada sitio puede almacenar en el equipo del usuario. La mayoría de los exploradores sólo permiten 20 cookies por sitio; si se intenta almacenar más, las cookies más antiguas se descartan. Algunos exploradores también definen un límite absoluto, normalmente 300, en cuanto al número de cookies que aceptan desde todos los sitios en conjunto.
Las cookies y la seguridad
Los problemas de seguridad relacionados con las cookies son
similares a los producidos por recibir datos del cliente. En una aplicación,
las cookies son otro tipo de datos proporcionados por el usuario y, por
consiguiente, están expuestos al examen y a la suplantación. Como mínimo, el
usuario puede ver los datos almacenados en una cookie, ya que ésta se encuentra
disponible en el propio equipo del usuario. También puede cambiar la cookie
antes de que el explorador la envíe a su aplicación.
No hay comentarios:
Publicar un comentario