Seguramente ya te has encontrado, al acceder a un sitio web, con un mensaje de este tipo: “Este sitio utiliza cookies para generar una mejor experiencia, ¿estás de acuerdo con nuestra política de uso?”.
Es posible que hayas clicado en “acepto” sin saber muy bien qué significa y aún con prisa para quitar ese banner del sitio, ¿cierto?
Pues debes saber que la idea de “mejorar tu experiencia”, de forma simplificada, significa: ¡recordarte!
Pero debes estar preguntándote: “¿cómo así recordarme?”. “Recordar”, en este contexto, significa guardar información de tu navegación en un sitio. Las cookies son pequeños paquetes de archivos de texto que informan al navegador que ya has accedido a determinado enlace. Como en la imagen a continuación, que muestra mi búsqueda en Google por “alura” y los enlaces de las páginas que ya he visitado aparecen con un color diferente:
Además de “recordar” los enlaces que has accedido, las cookies pueden guardar otras informaciones de tu navegación en la web, por ejemplo, si viste un vídeo, cuánto tiempo pasaste en la página, cuál es el idioma de tu preferencia, o cuáles fueron tus búsquedas en un sitio. Es decir, todo lo que hagas durante la navegación genera información sobre ti, que puede ser almacenada en cookies.
En un e-commerce, las cookies pueden mantener los ítems seleccionados en tu carrito de compras. Ya en páginas web que solicitan login y contraseña, los datos encriptados de acceso pueden ser almacenados en una cookie, sosteniendo tu sesión y permitiendo que tus credenciales de login permanezcan válidas por más tiempo. Revisa un breve resumen sobre los usos más comunes:
Por cuenta de esa funcionalidad, las cookies mejoran la experiencia de navegación. Sin embargo, pueden recopilar informaciones sensibles sobre quién está accediendo a determinado sitio o servicio.
Fuente: tumblr
Siempre que el punto “informaciones sensibles” surge, aparece una ola de nerviosismo o algunas inquietudes. ¡Pero calma! Los datos almacenados por tu navegador son compartidos con los sitios solo si tú lo permites. Y, al contrario de lo que se pueda imaginar, las cookies existen desde los albores de internet, recopilando y almacenando informaciones de navegación.
Sin embargo, con la ampliación de las discusiones de privacidad en Brasil y en el mundo, en la Unión Europea se estableció la Cookie Law (Ley de Cookies, en traducción libre) y en Brasil la LGPD (Ley General de Protección de Datos), que obliga a los sitios a informar que utilizan cookies para almacenar tus informaciones y preferencias. Es por eso que la alerta sobre la política de uso de las cookies rutinariamente aparece cuando accedes a una página web.
Ahora no verás la alerta de la misma forma, ¿verdad?
Fuente: elaboración propia
Ahora que ya comprendemos qué son las cookies de internet, cuál es la función de esos mensajes de alerta y cómo pueden ser utilizadas las cookies, ¿profundizamos en el tema?
Las cookies pueden presentar riesgos y causar algunas preocupaciones, como la obtención de información personal por invasores, el monitoreo indeseado para entender cómo usas internet y la posibilidad de fuga de datos que criminales pueden explotar, como intentar acceder a tu información bancaria.
Ya sabemos que las cookies son archivos de texto que guardan información referente a la navegación hecha en un determinado sitio. Pero, ¿cómo funciona esto?
Para profundizar nuestra comprensión sobre las cookies, el primer punto es entender que las aplicaciones web son stateless, es decir, no mantienen el estado después del cierre de la conexión del navegador. Cada solicitud HTTP es independiente y nativamente tiene la función de realizar dos procedimientos: realizar solicitudes del servidor web y manejar sus respuestas.
Esto ocurre porque los servidores web no tienen la responsabilidad de almacenar, autenticar datos del cliente o mantener las sesiones, es decir, mantener al usuario logueado en determinada página en cada solicitud hecha. De esta manera, un servidor web tampoco puede identificar si más de una solicitud fue ejecutada por un mismo navegador y, es en este escenario donde entran en acción las cookies.
Fuente: Shutterstock
Las solicitudes de cookies pueden ser realizadas a través de un header (encabezado de respuesta) llamado Set-Cookie, establecido por el servidor. Al acceder por primera vez a una página web, las informaciones solicitadas en este encabezado de respuesta (que varían de acuerdo con lo que es determinado por cada sitio) quedan almacenadas en tu computadora de forma local. Luego, en la próxima solicitud hecha por el usuario en esa misma página web, el navegador del cliente envía las Cookies de vuelta al servidor también a través del header (encabezado) Cookie.
Vamos a analizar el esquema representado en la imagen a continuación, para comprender mejor.
Figura 1:
Fuente: elaboración propia, referencia: auth0
¿Sabes qué ocurre cuando enviamos una solicitud al dominio www.alura.com.br
?
Al acceder a la plataforma, el servidor envía el encabezado Set-Cookie en la respuesta HTTP. La sintaxis del Set-Cookie
presenta una cadena de caracteres (¡eso es, un string!) que posee un par clave/valor y lleva sus atributos obligatorios y opcionales. El Set-Cookie
de nuestro ejemplo, presente en la Figura 1, funciona como una solicitud de presentación y, la próxima vez que el cliente acceda al dominio por el mismo navegador, devolverá el HTTP Cookie que será reconocido por el servidor.
Ahora, revisa la Figura 2 que ilustra la situación de un segundo acceso al mismo dominio:
Figura 2
Fuente: Elaboración propia. Referencia: auth0
Al acceder al sitio por segunda vez, el cliente envía la Cookie y el servidor reconoce al usuario por medio de su identificación (un ID único), que devuelve una respuesta a partir de esas informaciones. De esta manera, todas las veces que el cliente acceda a la página, su identificación será reconocida y él podrá permanecer logueado (este es solo un ejemplo de uso de cookies).
Y como persona desarrolladora, ¿qué tipos de informaciones puedo solicitar por el Set-Cookie
? Notamos que el Set-Cookie
presenta algunos parámetros con el formato nombre-valor y su estructura puede ser definida de la siguiente manera:
Set-Cookie: <cookie-name>=<cookie-value>
Pero, ¿qué significan esas informaciones? La tabla a continuación describe lo que cada parámetro significa en un Set-Cookie:
Clave: nombre | Valor |
---|---|
nombre de la cookie | indica la función de la cookie |
valor de la cookie | informaciones que lleva - en forma de string |
Además, también es posible enviar uno o múltiples
atributos vía Set-Cookie
para almacenar otros tipos de informaciones, tu elección depende del tipo de aplicación y puede estar vinculada a un único dominio. Vamos a analizar un formato de Set-Cookie
que es enviado en el encabezado de la respuesta por el servidor:
Set-Cookie: <cookie-name>=<cookie-value>; Domain=<domain-value>; Secure; HttpOnly
Aquí, una cookie comienza con un par conteniendo nombre-valor, luego tenemos el atributo opcional Domain con el par dominio-valor, que define un ámbito de dominio; el atributo Secure tiene como propósito impedir que las cookies sean observadas por partes no autorizadas durante su transmisión; y el atributo HttpOnly impide el acceso de sus informaciones a través de la propiedad JavaScript document.cookie. Revisa otros atributos:
Atributos | Breve descripción |
---|---|
Expires=<date> | Indica la fecha y hora en que la cookie expirará |
Max-Age=<number> | Número de segundos hasta que las cookies expiren |
Domain=<domain-value> | Define el host al que se enviará la cookie |
Path=<path-value> | Indica el camino que debe existir en la URL |
Secure | El cookie solo se envía en solicitudes HTTPS - booleano |
HttpOnly | Prohíbe el acceso al cookie con la propiedad document.cookie |
Fuente: Creación propia. Referencia: MDN & Dias de Dev
Otro atributo opcional que merece atención, especialmente debido a cuestiones de seguridad y ataques CSRF, es el SameSite=<samesite-value>
que puede recibir tres parámetros:
SameSite=Strict
: Es lo mismo que SameSite
(sin valor). Los cookies no se compartirán durante la solicitud con otros sitios, es decir, es first-party y no third-party;SameSite=Lax
: El parámetro SameSite=Lax puede ser enviado cuando el método HTTP es considerado el más “seguro”. Por ejemplo, cuando se trata de un GET y no un POST (puedes encontrar la lista de los métodos “seguros” en la especificación RFC7231).SameSite=Lax
, debemos utilizar los métodos HTTP que se usan para lectura de datos, como el GET, y no los métodos que causan alguna modificación en la información, como el POST o PUT. En segundo plano, la instrucción deberá modificar la URL que aparece en la barra de direcciones del navegador, es lo que llamamos navegación “Top-Level”. De una forma más simple, el SameSite=Lax
dirige tu navegador a otra URL a través de un enlace. Esta es la configuración predeterminada que propone un enfoque más flexible (el término “lax” tiene justamente ese significado de “relajado”, “ambiguo”), buscando garantizar protección contra algunos ataques y teniendo como objetivo mantener la experiencia de navegación para el cliente;SameSite=None
: Si estableces un set-cookie con el SameSite=None
, eso significa que los cookies se enviarán por el navegador tanto para solicitudes cross-site (sitios diferentes, sitios cruzados) como para same-site (del mismo sitio). Para evitar problemas relacionados con la seguridad, los navegadores actuales exigen el parámetro Secure
, como: Set-Cookie: <cookie-name>=<cookie-value>; SameSite=None; Secure
.Nuestro bote de cookies ya está casi lleno, ¿no es así?
Fuente: Giphy
Ya tenemos una infinidad de datos e intercambio de información. Pero, ¿existe la posibilidad de hacer este intercambio entre cliente y servidor con las cookies?
Es posible especificar cuáles atributos son relevantes para tu aplicación, como, por ejemplo, estipular una fecha de duración o expiración para la cookie, entre otras informaciones. Además, los tipos de cookies tienen la función de mantenernos logueados (o no) después de insertar nuestras credenciales en un sitio. Ahora vamos a conocer los tipos de Cookies.
Ya entendemos lo que son los headers Set-Cookie
, 'cookie' y cómo funciona la estructura para la creación de una cookie. Sin embargo, es esencial profundizar el funcionamiento de los llamados cookies de sesión y los cookies permanentes. ¿Vamos allá?
Un Cookie de sesión inicia cuando el cliente accede a un sitio y expira (se borra) cuando el cliente termina la conexión. Esto significa que los cookies de sesión se borran después del fin de la sesión o cuando el navegador se cierra. También son conocidos como temporary cookies (cookies temporales) o non-persistent cookies (cookies no persistentes). Este tipo de cookie se define cuando no cargamos los atributos Expires
o Max-Age
.
¿Y cómo funcionan los cookies de sesión?
Set-Cookie: sessionId=38afes7a8
;Los cookies permanentes tienen una fecha específica para expirar con el atributo Expires
. Revisa el ejemplo:
Set-Cookie: id=a3fWa; Expires=Wed, 25 Jan 2023 07:28:00 GMT
O aún pueden expirar después de un intervalo de tiempo, sin la necesidad del cliente interrumpir la sesión. En este caso, el atributo usado es Max-Age. Revisa a continuación un ejemplo de su aplicación:
Set-Cookie: id=a3fWa; Max-Age=2592000
Tenemos también el Set-Cookie
con su nombre id
y su valor. Por último, el atributo Max-Age
llevando un valor que define el período en segundos en que el cookie expirará. De esta forma, el cookie expirará en 2592000
segundos, que es lo mismo que 30 días.
Los cookies permanentes almacenan las informaciones sobre el comportamiento del usuario de forma local (en tu dispositivo) para proporcionar una mejor experiencia de navegación.
La diferencia entre los dos tipos de cookies se encuentra en el hecho de que los permanentes o no expiran, o tienen una fecha específica para eso, y son almacenados en tu dispositivo local. Por otro lado, los cookies de sesión están almacenados en la memoria de forma temporal, mientras la sesión esté activa o hasta que cierres tu navegador.
El flujo de la operación es el mismo para los dos tipos de cookies: cliente envía la solicitud > servidor recibe y envía una respuesta con el
Set-Cookie
> cliente recibe la respuesta y almacena en cookie.
La pregunta que queda es: “¿Debo solicitar y aceptar cookies de sesión y permanentes?”
Fuente: pinterest
La respuesta a esta pregunta es: “¡depende”! Imagina que cada vez que quieras entrar en la plataforma de Alura, o en tu correo electrónico, necesites insertar tu login y tu contraseña. O incluso cuando quieras ver videoaulas en Youtube, pero termines accediendo siempre al mismo vídeo porque no hay una señalización de que ese contenido ya fue visto. Estas tareas repetitivas pueden parecer laboriosas para muchas personas, y si tú eres una de ellas, definitivamente deberías aceptar los “cookies esenciales o necesarios” que aparecen en los banners al acceder a algunos sitios, como el de la imagen a continuación:
Fuente: elaboración propia, tomada del sitio https://www.cnnbrasil.com.br/
Ser un cookie de sesión o permanente, en general, no es el verdadero problema para una persona que accede a un sitio por primera vez, o para una persona desarrolladora.
El conflicto mayor está relacionado con el compartimiento de información que implica la LGPD, pues esta cuestión hace referencia al ámbito de los cookies First-party (Cookie primario) y Third-party (Cookie de terceros). En algunos casos hay también Second-party. Revisa el cuadro a continuación, que relaciona los tipos de cookies y sus respectivos ámbitos:
Cookies | Ámbito |
---|---|
Cookie primario | Un cookie primario es creado por sitios que un usuario visita. Se usa para guardar datos, como ítems de carrito de compras y credenciales de entrada. Por ejemplo, cookies de autenticación y otras análisis. |
Cookie secundario | Un cookie secundario es técnicamente lo mismo que un cookie primario. La diferencia es que los datos son compartidos con otra parte mediante un contrato de asociación de datos. Por ejemplo, Análisis e informes del Microsoft Teams. |
Cookie de terceros | Un cookie de terceros es instalado por un dominio diferente al que el usuario visitó explícitamente y se usa para seguimiento. Por ejemplo, los botones: Me gusta, servicio de anuncios y chats en vivo. |
Fuente: Atributo de cookie SameSite
El cuadro anterior presenta un excelente resumen. Sin embargo, los cookies primarios y de terceros presentan más características esenciales. ¡Vamos a entenderlas mejor a continuación!
Ya aprendimos que en términos de validez, podemos identificar cookies de sesión y cookies permanentes. Por otro lado, en términos de Dominio, podemos diferenciar los cookies como Primarios y de Terceros.
Fuente: elaboración propia. Referencia: https://devopedia.org/http-cookie
Los Cookies Primarios son enviados directamente por el servidor responsable del dominio (el sitio que accediste). Este tipo de cookie se utiliza para mejorar tu experiencia en este sitio específico, es esa idea de memoria que ya comentamos anteriormente.
Sin embargo, los cookies de terceros provienen de una tercera parte, es decir, de otro servidor. Son los botones de me gusta de redes sociales, banners con publicidad (y no necesitas clicar en las publicidades, los cookies de terceros ya son almacenados por tu navegador) e imágenes provenientes directamente de otros sitios.
Los Cookies de Terceros pueden ser nocivos en relación a la seguridad y uso de tu información, pues como su propio nombre sugiere, hay un tercer elemento responsable por las directivas de cookies y seguimiento de tu información.
Durante tu lectura, ya conversamos sobre los tipos de cookies y acerca de su función principal, que es almacenar información. Y si hasta ahora no conocías el potencial de los cookies en relación a la privacidad de la información o seguridad, quizás desees eliminar o manipular estos pequeños archivos. Hay una forma directa de ejecutar esta acción, es decir, sin necesidad de entrar al sitio y deshabilitar preferencias, sino accediendo a los cookies que
fueron almacenados en tu computadora vía navegador.
Pero, ¿dónde están los cookies almacenados por mi computadora?
Bueno, es posible encontrarlos de forma local, ¡eso es, en los directorios de tu máquina! Sin embargo, es mucho más rápido con el soporte de las herramientas de desarrollo, como el DevTools de tu navegador. Para eso, sigue los pasos:
1) En Google Chrome, con el sistema operativo Windows, accede al DevTools clicando con el botón derecho del ratón en cualquier página web, a través de la opción “inspeccionar”, o puedes clicar en la tecla “F12” de tu teclado. Como ejemplo, en la imagen a continuación: yo abrí el sitio www.alura.com.br
> botón derecho del ratón en cualquier área de la pantalla del navegador para abrir el menú > Inspecionar
:
Fuente: Elaboración propia
2) Con el DevTools abierto, busca la opción Aplicación (Application, en inglés), en el menú de opciones ubicado en la parte superior. Después, selecciona la opción Cookies en el menú a la izquierda y accede al dominio deseado. En el área a la derecha, podrás visualizar los cookies relacionados a este dominio (en el caso de nuestra prueba, alura.com.br) y todos sus atributos.
Fuente: elaboración propia
También puedes consultar la documentación de otros navegadores para visualizar los cookies presentes en tu computadora:
¿Qué significa cookies en portugués: Galleta o bizcocho? Esa discusión no existió durante la creación del término cookie, que, de hecho, tiene su origen en un período anterior a la propia internet. Su origen está relacionado a otro término, los “magic cookies” (galletas mágicas, en traducción literal), que hacían referencia a los paquetes de datos del sistema UNIX. Estos paquetes no sufrían alteraciones durante sus transmisiones o recepciones. Entonces, para designar nuestros pequeños paquetes de datos en la web, el programador Lou Montulli, en 1994, acuñó el término cookies. Es importante recordar que Montulli fue uno de los responsables de las primeras versiones del Netscape Navigator y la funcionalidad de los HTTP Cookies que ha resistido al tiempo, siendo relevante hasta hoy.
Google Docs es capaz de guardar cambios en tus archivos incluso offline, usando cookies.
Las cookies third-party están con los días contados debido a las nuevas normas y reflexiones sobre privacidad en internet.
¡Aún existe el Zombie Cookie (cookie Zombi)! Vienen con los cookies de terceros y se instalan de forma permanente en el dispositivo del cliente sin su consentimiento. Fueron creados cuando aún se usaban plug-ins Flash en los sitios y su eliminación es muy difícil, ya que insisten en “volver a la vida”. Los cookies zombis son utilizados para prohibir usuarios de determinada página o para rastrearlos. Es importante recordar que el soporte a Flash terminó a finales de 2020, ¡una razón más para mantener tu navegador actualizado!
Para saber si un sitio utiliza cookies, puedes seguir los siguientes pasos:
Para verificar si los cookies están activados en tu navegador, puedes seguir los siguientes pasos:
En general, aceptar cookies no se considera algo inseguro. Sin embargo, es importante estar consciente de cómo los cookies están
siendo utilizados por los sitios que visitas. Algunos cookies son maliciosos y pueden ser usados para rastrear tus actividades en línea y recopilar información confidencial. Un consejo es verificar las políticas de privacidad de los sitios para entender cómo utilizan los cookies.
Al aceptar cookies, estás permitiendo que el sitio web almacene pequeños archivos de texto en tu navegador. Estos cookies pueden tener diferentes propósitos, como personalizar contenido, recordar tus preferencias en el sitio, mantenerte conectado, entre otras cosas que ayudan a proporcionar una experiencia más conveniente para el usuario.
Activar cookies en tu navegador permite que los sitios web almacenen información en tu dispositivo, como preferencias, datos de inicio de sesión y personalización de contenido.
Los cookies son generados por los propios sitios que visitas.
Limpiar cookies puede ser útil para proteger tu privacidad, mejorar la seguridad, liberar espacio de almacenamiento y resolver posibles problemas de navegación.
Borrar cookies puede ser beneficioso en algunos casos. Esto puede ayudar a proteger tu privacidad y evitar el rastreo de la información contenida, además de liberar espacio de almacenamiento en tu dispositivo. Sin embargo, borrar cookies también puede tener sus desventajas, como la pérdida de configuraciones personalizadas y ajustes ya realizados, como el inicio de sesión.
Hemos llegado al final de este artículo y ahora has aprendido bastante sobre qué son los cookies y para qué sirven, ¿no es así?
Hasta aquí has comprendido que los cookies son mucho más que pequeños archivos para almacenar datos. Después de todo, con los cookies, es posible obtener información que funciona como “huellas” en un camino, y a través de estas “marcas” dejadas por la web es posible garantizar una buena experiencia de navegación, mantener tus inicios de sesión activos, gestionar tus preferencias y rastrear tu comportamiento.
Otro ejemplo, considerado por muchos como algo no tan noble, es el scraping de tus datos por terceros, con el fin de fomentar o dirigir prácticas de consumo y compras en línea.
También has entendido cómo funciona la relación entre cliente y servidor en el manejo de cookies e identificado el papel de cada entidad en este proceso.
Además, conociste los tipos principales de cookies, que son:
Es importante recordar que los cookies no se usan para ejecutar códigos, programas o enviar virus a tu computadora, pero pueden ser utilizados como estrategias de marketing para sugerencia de contenidos o ventas, que son los third-party.
Ahora que has descubierto toda esta información sobre cookies, puedes comenzar a crear tus primeros cookies y ampliar la discusión sobre su manejo, ya que esta práctica es esencial para el desarrollo web en áreas como accesibilidad, seguridad, así como UI, marketing y publicidad.
Y entonces, ¿vas a seguir aceptando todos los cookies? ¿Cuáles son los desafíos y ventajas de trabajar con cookies que percibiste a lo largo de la lectura?
¡Comparte tu opinión en tus redes sociales y etiquétanos!
Foto
Camila Pessôa
Hola, ¡soy Camila! Tengo 33 años, soy madre y me introduje en el área de tecnología a través de la robótica educativa. Participé en el Bootcamp {Reprograma} con enfoque en Back-End /Node.js y estudio Sistemas de Información. Actualmente formo parte del Scuba-Team y tengo una gran pasión por la educación y la tecnología, ¡ya que creo que esta combinación es transformadora!
Este artículo fue traducido para Alura Latam por Bruno Souza
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Puedes realizar el pago de tus planes en moneda local en los siguientes países:
País | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Plan Semestral |
486.67
BOB |
69392.53
CLP |
292315.76
COP |
65.90
USD |
261.35
PEN |
1453.08
MXN |
3023.28
UYU |
65.90
USD |
532.51
GTQ |
34918.38
CRC |
4222.62
DOP |
Plan Anual |
737.76
BOB |
105194.45
CLP |
443131.17
COP |
99.90
USD |
396.20
PEN |
2202.77
MXN |
4583.09
UYU |
99.90
USD |
807.25
GTQ |
52933.93
CRC |
6401.21
DOP |
Acceso a todos
los cursos
Estudia las 24 horas,
dónde y cuándo quieras
Nuevos cursos
cada semana