¿Se puede cumplir con el RGPD? – Parte 1: Cookies

Se puede cumplir con el RGPD en materia de cookies de forma estricta

Paso 2: Identifica las cookies que genera tu web y qué elemento las genera

Esta es la parte mas complicada del proceso, especialmente si tu rol no es técnico.

Primera pista: Google Analytics usa cookies. Y tu usas Google Analytics, ¿verdad?

Segunda pista: los servicios de Google usan cookies. Todos y cada uno de ellos. ¿Sabes cuántos usas?

Tercera pista: ¿incrustas contenidos de otros sitios web? Es bastante probable que esos sitios generen cookies al mostrar el contenido incrustado.

Cuarta pista: los comentarios de WordPress generan cookie, ¿tienes los comentarios activados en tu sitio?.

Ley de nadie da euros a 80 céntimos: los plugins molones que hace muchas cosas y que además son gratuitos suelen usar cookies para recabar información que tu no usas, pero que a ellos les viene muy bien.

¿Aceptar o no aceptar las cookies? Esa es la cuestión
¿Aceptar o no aceptar las cookies? Esa es la cuestión.

Para saber que cookies genera tu web tienes que hacer el siguiente experimento:

  1. Abre una ventana de navegación en modo privado.
  2. Carga directamente tu web. Puedes escribir la dirección en la barra de direcciones del navegador o puedes usar un enlace de favoritos, pero no te busques en google ni pases antes por otra web.
  3. Navega por tu web tratando de pasar por la mayor parte de contenidos que puedas pero sin entrar en la zona privada (para entrar en la zona privada tienes que identificarte con tu usuario y contraseña). No es necesario que pases por cada una de tus páginas (excepto para web pequeñas donde si sea viable), pero si por la mas amplia variedad posible y especialmente por todas aquellas páginas que contienen funcionalidades concretas (ej. página de contacto). Una vez, mas de momento no pases por el proceso de registro de usuario, si es que tu web dispone de ello.
  4. Abre las herramientas para desarrolladores de tu navegador (generalmente F12 o Ctrl+May+I) y navega hacia la opción que te permite ver las cookies. En Brave, Chrome, Vivaldi y los navegadores derivados de Chromium está en la pestaña Application y en Storage:Cookies. En Firefox, busca en Almacenamiento y luego Cookies. Las cookies que ves se han generado en tu proceso de navegación previo y por tanto provienen de tu página web.
  5. Toma nota de lo siguiente:
    • El nombre de la cookie (columna Name)
    • El dominio de la cookie (columna Domain)
    • Que web genera la cookie, que aparece en la parte de la izquierda, debajo de Cookies.
  6. Ahora completa el recorrido por tu web por la parte privada (si existe), incluyendo el proceso de registro de usuario.
  7. Vuelve a las herramientas para desarrolladores para volver a revisar las cookies que se han generado, anotando los mismos datos que antes.

Las dos tomas de datos que te propongo tiene su relevancia en tanto en cuanto que al describir nuestra política de cookies debemos separar las que atañen a la parte pública de la web, con respecto a la parte privada. Para el resto de esta sección podemos tratar una y otras por igual.

¿Quién está generando las cookies de mi web?

El siguiente paso es identificar el origen de cada una de las cookies de esa lista. Esta tarea no es nada sencilla.

La cookies se generan en el código de tu web. Ese código está formado por tu CMS (asumo WordPress), tu tema y tus plugins o complementos.

Tanto tu tema como tus plugins y complementos tiene una parte del código almacenada en tu web, pero cada vez mas éstos hacen uso de piezas de código que o bien se almacenan en otros dominios, o incluso se ejecutan en otros servidores.

Y cualquiera de estas piezas puede ser el origen de una cookie.

Trucos para identificar el origen de cada cookie:

  • Si la cookie ha sido generada por tu web, entonces busca en el código almacenado en tu servidor.
  • Si la cookie ha sido generada por otro dominio (ej. https://www.google.com) entonces busca en las llamadas a terceros.
    • Puede haber llamadas a terceros a través de servicios web en el código PHP de tu web.
    • Lo mas común sin embargo es que se haga a nivel de JavaScript. Revisa el código fuente de tu página y busca etiquetas de tipo <script con un atributo src que contenga el dominio que estás buscando. Estos scripts son los mas firmes candidatos como generadores de la cookie.
  • El nombre de la cookie te puede dar una muy buena pista sobre el plugin que la genera. Por ejemplo la cookie moove_gdpr_popup tiene toda la pinta de provenir del plugin GDPR Cookie Compliance creado por Moove Agency.
  • Realiza una búsqueda en Internet para «Cookie <nombre de la cookie> generator». En una gran mayoría de los casos, especialmente con las cookies de servicios de Google encontrarás quién puede generarla y para que sirve. Cookies como _gid, _gat, _ga, NID … son viejas conocidas.

¿Dónde se originan las cookies de mi web?

Ahora que ya sabemos que la cookie A proviene del complemento B, tenemos que saber exactamente donde se genera y aislarlo. ¿Por qué? Pues por que debemos hacer que esa parte del código esté condicionada a la aceptación de las cookies.

Si no tienes conocimientos de programación es prácticamente imposible que realices esta tarea con éxito. Si tus conocimientos no alcanzan busca la ayuda de un profesional cualificado.

Las cookies pueden ser usadas por terceros con oscuras intenciones. El RGPD defiende tu derecho a la privacidad
Las cookies pueden ser usadas por terceros con oscuras intenciones. El RGPD defiende tu derecho a la privacidad.

No hay grandes recetas, pero te contaré el resultado del análisis para la web de Fish & Bits.

Mi web como tal genera cinco cookies:

  • moove_gdpr_popup: Esta cookie almacena la elección sobre cookies que ha hecho el usuario. La genera el plugin GDPR Cookie Compliance y es una cookie muy curiosa y considerada esencial. Incluso si no quiero que la web almacene ninguna cookie en mi navegador, debo usar una cookie (esta) para recordar que esa es mi elección. Mi web permite incluso rechazar esa cookie, pero entonces el panel con el aviso de cookies aparece en todas las páginas, ya que todas las visitas son como una primera visita.
  • NID: Esta cookie la generan los servicios de Google y en mi caso en concreto Google Analytics. Mi web usa el script compacto de analytics que os presenté en el artículo Lo Esencial de Google Analytics, así que el código responsable está bien identificado.
  • comment_author_...: Hay tres cookies de este estilo que se generan cuando envías un comentario. Estas cookies almacenan los datos con los que te has identificado para enviar el comentario (tu nombre, tu dirección de email y tu web).

Adicionalmente mi web genera cookies provinientes de:

  • google.com: Una vez mas los servicios de Google. En mi caso he identificado a reCAPTCHA como el origen.
  • youtube.com: También cosa de Google, hay varias cookies que se generan en aquellas páginas en las que hay un video de YouTube incrustado.
  • dobleclick.net: Provienen también de los vídeos de Youtube incrustados.
  • spotify.com: Se generan en una sola de las entradas del blog que contiene embebida una lista de reproducción de Spotify.

Con respecto al uso de reCAPTCHA, se hace por el pulgin Contact Form 7, que inyecta el siguiente script:

<script type='text/javascript' src='https://www.google.com/recaptcha/api.js?render=6LeWVoQUAAAAAIJdC280xYHTjttD51UhhD2yfijl&ver=3.0'></script>

Este script se genera en la función wpcf7_recaptcha_enqueue_scripts() del módulo PHP /wp-content/plugins/contact-form-7/modules/recaptcha.php:

function wpcf7_recaptcha_enqueue_scripts() {
	$service = WPCF7_RECAPTCHA::get_instance();

	if ( ! $service->is_active() ) {
		return;
	}

	$url = add_query_arg(
		array(
			'render' => $service->get_sitekey(),
		),
		'https://www.google.com/recaptcha/api.js'
	);

	wp_enqueue_script( 'google-recaptcha', $url, array(), '3.0', true );
}

Para cumplir con el RGPD en lo que a cookies se refiere, debería ser capaz de condicionar la sentencia anterior a la aceptación de las cookies de mi web. Pero esto está en un módulo que mantienen terceras personas y que no debería modificar por mi cuenta.

Como veis, incluso para casos sencillos es complejo identificar la fuente y una vez identificada no será por lo general sencillo condicionar la ejecución del trozo de código responsable de generar la cookie.

Pero no es imposible, así que vamos a ver cómo hacerlo para los casos listados.