Inconvenientes de las cookies

Además de lo relativo a la privacidad que ya se ha mencionado, hay otras razones por las que el uso de cookies ha recibido cierta oposición: no siempre identifican correctamente a los usuarios, y se pueden utilizar para ataques de seguridad.

Indexación inexacta

Si se utiliza más de un navegador en un ordenador, cada uno tiene su propio almacenamiento de cookies. Por lo tanto, las cookies no identifican a una persona, sino a una combinación de cuenta de usuario, ordenador y navegador. De esta manera, cualquiera que utilice varias cuentas, varios ordenadores, o varios navegadores, tiene también múltiples conjuntos de cookies.
De la misma manera, las cookies no diferencian entre varias personas que utilicen el mismo ordenador o navegador, si éstos no utilizan diferentes cuentas de usuario.

Robo de cookies

Durante el funcionamiento normal, las cookies se envían en los dos sentidos entre el servidor (o grupo de servidores en el mismo dominio) y el ordenador del usuario que está navegando. Dado que las cookies pueden contener información sensible (nombre de usuario, un testigo utilizado como autenticación, etc.), sus valores no deberían ser accesibles desde otros ordenadores. Sin embargo, las cookies enviadas sobre sesiones HTTP normales son visibles a todos los usuarios que pueden escuchar en la red utilizando un sniffer de paquetes. Estas cookies no deben contener por lo tanto información sensible. Este problema se puede solventar mediante el uso de https, que invoca seguridad de la capa de transporte para cifrar la conexión.
El scripting entre sitios permite que el valor de las cookies se envíe a servidores que normalmente no recibirían esa información. Los navegadores modernos permiten la ejecución de segmentos de código recibidos del servidor. Si las cookies están accesibles durante la ejecución, su valor puede ser comunicado de alguna manera a servidores que no deberían acceder a ellas. El proceso que permite a una parte no autorizada recibir una cookie se llama robo de cookies, y el cifrado no sirve contra este tipo de ataque.
Esta posibilidad es explotada normalmente por atacantes de sitios que permiten a los usuarios el envío de contenido HTML. Introduciendo un segmento de código adecuado en un envío HTML, un atacante puede recibir las cookies de otros usuarios. El conocimiento de estas cookies puede después ser explotado mediante la conexión a los sitios en los que se utilizan las cookies robadas, siendo así identificado como el usuario a quien se le robaron las cookies.

Falsificación de cookies

Aunque las cookies deben ser almacenadas y enviadas de vuelta al servidor sin modificar, un atacante podría modificar el valor de las cookies antes de devolverlas. Si, por ejemplo, una cookie contiene el valor total de la compra de un usuario en un sitio web, cambiando ese valor el servidor podría permitir al atacante pagar menos de lo debido por su compra. El proceso de modificar el valor de las cookies se denomina falsificación de cookies y a menudo se realiza tras un robo de cookies para hacer un ataque persistente.
Sin embargo, la mayoría de los sitios web solo almacenan en la cookie un identificador de sesión —un número único utilizado para identificar la sesión del usuario— y el resto de la información se almacena en el propio servidor. En este caso, el problema de la falsificación de cookies queda prácticamente eliminado.

Cookies entre sitios ( cross-site cooking )

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).

Cookies, alternativas e implementación de las cookies