Inicio Gestión de cookies en JavaScript
Artículo
Cancelar

Gestión de cookies en JavaScript

Para debatir…

¿Qué crees que son las cookies?

¿Son las cookies malas?

¿Qué son las cookies de terceros?

¿Son las cookies de terceros malas?

Introducción

Las cookies son unos pequeños ficheros, que se escribirán en una carpeta determinada en el ordenador del cliente. Estos ficheros te pueden permitir el grabar cierta información y que permanezca entre diferentes sesiones de trabajo de un usuario.

Un uso muy típico de las cookies es usarlas para crear un sistema de carrito de la compra para tiendas online. De esta forma, se pueden almacenar productos que el usuario va seleccionando y cuando se realiza el pago se mostrará el total a pagar, junto con el listado de productos.

¿No es inseguro que el navegador acceda a la memoria secundaria del dispositivo a través de las cookies?

Permitir que algún programa pueda leer y escribir en el disco duro puede parecer inseguro en un principio, pero el mecanismo de las cookies no abre tu disco duro al mundo para que cualquiera pueda ver su contenido o modificarlo. Este mecanismo de las cookies proporciona acceso a un fichero, que está situado en un directorio especial del disco duro.

En navegadores como Mozilla Firefox, el fichero de cookie se nombra como cookies.txt y está localizado en un directorio (cuyo nombre termina en .slt) dentro del perfil del navegador.

En Windows, esa localización está en:

1
C:\\Windows\Application Data\Mozilla\Profiles\<profilename>\

y en Mac OSX en:

1
<user>/Library/Mozilla/Profiles/<profilename>/.

Google Chrome almacena las cookies en su base de datos SQLite en un fichero llamado Cookies dentro de:

1
<user>\Local Settings\Application Data\Google\Chrome\User Data\Default

Un fichero de cookies es un fichero de texto. El formato de almacenamiento de los datos en ese fichero dependerá del navegador. La estructura de ese fichero te dará igual ya que para acceder a las cookies lo vas a hacer a través de la propiedad document.cookie.

¿Cómo se pueden ver las cookies desde el navegador?

¡Las cookies son específicas al dominio! En otras palabras, si un dominio crea una cookie, otro dominio no podrá acceder a ella a través del navegador. La razón de ello es que muchas veces podremos almacenar datos importantes como usuarios/contraseñas en las cookies, y no queremos que otros dominios puedan consultarlos. La mayor parte de las veces, cuando almacenamos datos de este tipo, estarán encriptados dentro de la cookie.

¿Puede una web acceder a las cookies de otra web?

Las cookies tendrán una fecha de caducidad, ya que algunos navegadores tienen limitado el número máximo de cookies que pueden almacenar (1000 en Firefox). Será el propio navegador el encargado de borrar las cookies caducadas.

Gestión y uso de cookies

Mira el vídeo:

Preguntas a responder tras la visualización del vídeo:

  1. ¿Cuál es la fecha de expiración por defecto de una cookie?
  2. ¿Se puede mantener una cookie entre diferentes sesiones?
  3. ¿Cómo se guarda una cookie?
  4. ¿Estas dos cookies son consideradas iguales o diferentes: document.cookie = "usuario=mruizg; path=/ document.cookie = "usuario=mruizg; path=/test ?
  5. ¿Cómo sobreescribimos una cookie?
  6. ¿Cómo borramos una cookie?
  7. ¿Podemos borrar cookies desde el navegador directamente?

Mira el vídeo:

Preguntas a responder tras la visualización del vídeo:

  1. ¿Qué hace la línea alert(document.cookie)?
  2. ¿Qué devuelve la línea event.target.id si event objeto Event?
  3. ¿Estas dos cookies son consideradas iguales o diferentes: document.cookie = "usuario=mruizg; expires=Thu, 20 Jan 2100 document.cookie = "usuario=mruizg ?

Mira el vídeo:

Preguntas a responder tras la visualización del vídeo:

  1. ¿Podemos reutilizar las funciones para crear y borrar cookies?
  2. Si hacemos let d = new Date() que fecha habrá en d?
  3. ¿Qué hace la función split()?
  4. ¿Qué diferencia hay entre la función alert() y la función prompt()?
  5. ¿Qué funciones de las que escribe pueden servir para otros muchos proyectos que usen cookies?

Bibliografía

Este artículo está licenciado bajo CC BY 4.0 por el autor.

Interacción con el usuario: Eventos y formularios

Eventos en JavaScript