Detectar Do Not Track del navegador cliente con PHP

Do Not Track

Recientemente hemos notado que mas y mas sitios web nos alertan del uso de cookies, ya sea con una barra en la parte superior o en la parte inferior al entrar a un sitio web o via notificación de navegador. Esto en gran medida se debe a las nuevas políticas de privacidad para proteger a los usuarios de internet cuando visitan sitios web. De esta forma podemos “limitar” lo que puedan conocer sobre nuestro comportamiento y intereses al momento de navegar la Internet.

Recordemos que los cookies son archivos que los sitios web almacenan localmente en nuestro ordenador al momento de acceder a estos sitios. En su mayoría estos archivos permiten al nevagador guardar ciertas preferencias de uno o más sitios, como por ejemplo, mantener al usuario logeado a un sitio aun cuando el usuario cierre el navegador. Ejemplo, Gmail, Facebook, etc.

Otro uso de las cookies es hacer “tracking”, principalmente utilizado bajo esta modalidad por lo anunciantes o por las cadenas de publicidad para conocer los intereses de navegación de los usuarios.

En muchos aspectos esto viola ciertamente nuestra privacidad, si es utilizada de forma negativa, ya que puede ser utilizada por terceros para acceder a nuestros datos o incluso apoderarse de nuestro ordenador.

Esta propiedad “Do Not Track” viene incluida en la mayoría de los navegadores modernos, aunque viene desactivada, el usuario puede activarla en la configuración avanzada del navegador.

Ahora bien, como podemos los programadores detectar si esta propiedad está activada en el navegador del cliente con el objetivo de decidir si almacenar el archivo “cookie” en le ordenador del cliente o no según esta propiedad.

En PHP existe la instrucción HTTP_DNT como variable de servidor. Es decir, $_SERVER[‘HTTP_DNT’].

Para detectar si la propiedad esta activa en el navegador cliente para copiar la cookie o no en el cliente podemos hacerlo de la siguiente manera:

<?php echo isset($_SERVER['HTTP_DNT']) && ($_SERVER['HTTP_DNT'] == 1) ? 'true' : 'false'; ?>

También, podemos utilizar una función o método que devuelva true o false:

function getDntStatus() {
// returns TRUE if Dnt is on and is equal to 1,
// returns FALSE if Dnt is unset or not equal to 1.
return (isset($_SERVER['HTTP_DNT']) && $_SERVER['HTTP_DNT'] == 1);
}

Y usamos la función o método de la siguiente manera:

if (getDntStatus()) {
  echo 'window.isDntOn = true;';
    //do not use cookies .Set all cookies to 0 and exclude all cookie set code
} else {
  echo 'window.isDntOn = false;';
    //cookies can be use. Set all necesary cookies
}

De esta forma podemos detectar la propiedad “Do Not Track” y definir nuestro programa o sitio para que utilice el “cookie” en el cliente o no. En muchos países esta propiedad debe tomarse en serio, pues puede traer problemas legales si no se toma en consideración. Consulta las leyes sobre delito electrónico o derechos de los usuarios en los servicios web para websites en tu país.