Alternativas a las cookies

Cada sitio debe tener sus propias cookies, de forma que un sitio malo.net no tenga posibilidad de modificar o definir cookies de otro sitio como bueno.net. Las vulnerabilidades de cookies entre sitios de los navegadores permiten a sitios maliciosos romper esta regla. Esto es similar a la falsificación de cookies, pero el atacante se aprovecha de usuarios no malintencionados con navegadores vulnerables, en vez de atacar el sitio web directamente. El objetivo de estos ataques puede ser realizar una fijación de sesión (robo de sesión en un sitio web).

Dirección IP

Una técnica poco fiable de realizar un seguimiento de usuarios se basa en almacenar la dirección IP del ordenador que solicita las páginas. Esta técnica ha estado disponible desde los inicios de World Wide Web, al ser necesario para la descarga de páginas que el servidor que las tiene conozca la dirección IP del ordenador en el que corre el navegador, o de su servidor proxy si lo hay. El servidor puede guardar esta información, independientemente del uso o no de cookies.
Sin embargo, estas direcciones son normalmente menos fiables que las cookies para la identificación de un usuario, debido a que los ordenadores y proxies pueden estar compartidos por varios usuarios, y el mismo ordenador puede tener asignadas diferentes direcciones IP en diferentes sesiones (caso típico en conexiones telefónicas, aunque también a través de ADSL y otras tecnologías). La fiabilidad de esta técnica se puede aumentar mediante el uso de otra característica del protocolo HTTP: cuando un navegador solicita una página porque el usuario ha seguido un link, la petición que se envía al servidor contiene la URL de la página donde el link estaba localizado. Si el servidor almacena esas URL, se puede rastrear el camino de páginas visitadas por el usuario de forma más precisa. Sin embargo, estos rastreos son menos fiables que los que proporcionan las cookies, ya que varios usuarios pueden acceder a la misma página desde el mismo ordenador, router con NAT o proxy, y después seguir links diferentes. Además, esta técnica solo permite el rastreo, y no puede reemplazar a las cookies en sus otros usos.
El seguimiento de direcciones IP puede ser imposible en algunos sistemas que se utilizan precisamente para mantener el anonimato en Internet, tales como Tor. Con tales sistemas, no solo puede un navegador utilizar varias direcciones a lo largo de una sesión, sino que varios usuarios podrían aparecer como si utilizasen la misma dirección IP, convirtiendo por lo tanto el uso de las direcciones IP en una técnica absolutamente inútil para el rastreo de usuarios.

URL (query string)

Una técnica más precisa consiste en incrustar información en la URL. Normalmente se usa para este fin la cadena de consulta que es parte de la URL, pero también se pueden utilizar otras partes. El mecanismo de sesión de PHP utiliza este método si las cookies no están habilitadas.
Este método consiste en que el servidor web añade cadenas de consulta a los enlaces de la página web que contiene, a la hora de servirla al navegador. Cuando el usuario sigue un enlace, el navegador devuelve al servidor la query string añadidos a los enlaces.
Las query strings utilizadas de esta manera son muy similares a las cookies, siendo ambas porciones de información definidos por el servidor y devueltas por el navegador posteriormente. Sin embargo, existen diferencias: dado que una cadena de consulta es parte de una URL, si la URL es reutilizada posteriormente, se estará enviando al servidor la misma porción de información. Si, por ejemplo, las preferencias de un usuario están codificadas en la query string de una URL, y el usuario envía esa URL a otro usuario por algún medio, esas preferencias serán utilizadas también por ese otro usuario.
Además, incluso si el mismo usuario accede a la misma página dos veces, no hay garantía de que se utilice la misma query string en las dos. Si, por ejemplo, el mismo usuario llega a la misma página dos veces, una proveniente de otra página del mismo servidor web, y otra de un buscador, las respectivas query strings serán normalmente diferentes, mientras que las cookies hubiesen sido idénticas. Para más detalles, véase cadenas de consulta.
Otras desventajas de las cadenas de consulta están relacionadas con la seguridad: almacenar en una query string información que identifica una sesión permite o simplifica los ataques de fijación de sesión, ataques de seguimiento de referentes y otras vulnerabilidades. La transferencia de identificadores de sesión en forma de cookies es más segura.
Otra desventaja de las query strings tiene que ver con la forma en que la web está diseñada. Las URL deberían apuntar a recursos y ser "opacas". Véase transferencia de estado representacional. Si se tiene una URL que incluye una cadena de consulta, ya no es la ubicación real del recurso.

Autenticación HTTP

Para la autenticación, el protocolo HTTP incluye mecanismos tales como el digest access authentication, que permite acceder a una página web solo cuando el usuario ha facilitado un nombre de usuario y contraseña correctos. Una vez que se han introducido los credenciales, el navegador las almacena y las utiliza para acceder a las páginas siguientes, sin pedirlas de nuevo al usuario. Desde el punto de vista del usuario, el efecto es el mismo que si se usan cookies: el nombre de usuario y palabra clave solo se piden una vez, y a partir de entonces el usuario obtiene acceso a las páginas del servidor. Internamente, el nombre de usuario y la contraseña se envían al servidor con cada petición del navegador. Esto quiere decir que alguien que estuviese escuchando este tráfico podría leer esta información y almacenarla para su uso posterior. Las sesiones, no obstante, normalmente expiran tras un periodo de inactividad determinado, quedando así invalidadas para, por ejemplo, recuperar la sesión que tenía el usuario que estaba navegando.

Objetos Macromedia Flash almacenados localmente

Si un navegador incluye el complemento de Macromedia Flash Player, se puede utilizar la función de objetos compartidos localmente (local shared objects) del mismo, de una forma muy similar a las cookies. Los objetos almacenados localmente (local stored objects) pueden ser una opción interesante para los desarrolladores web porque la mayoría de los usuarios de Windows tienen Flash Player instalado, el tamaño máximo por defecto de los objetos es 100 kb, y los controles de seguridad son distintos de los controles de usuario para las cookies, de forma que los objetos almacenados localmente puedan estar habilitados cuando las cookies no lo están.

Persistencia en el cliente

Algunos navegadores web soportan un mecanismo de persistencia basado en script que permite que la página almacene información localmente para su uso posterior. Internet Explorer, por ejemplo, soporta información persistente en el historial del navegador, en los favoritos, en un almacenamiento XML, o directamente en una página web guardada en disco

Propiedad window.name de JavaScript

Si está habilitado el uso de JavaScript, se puede utilizar la propiedad window.name del objeto window para almacenar información de forma persistente. Esta propiedad permanece inalterada durante la carga de otras páginas web. Este pequeño hack no es muy conocido, y por lo tanto no ha sido considerado un fallo de seguridad. Además, el uso de window.name tiene problemas de compatibilidad con navegadores, ya que algunos, como los basados en Mozilla de los que Mozilla Firefox es un ejemplo, no soportan la persistencia con JavaScript utilizando window.name.20​

Política de cookies, inconvenientes e implementación