Las
cookies que son enviadas por el cliente a su servidor son solo partes de las solicitudes enviadas por el cliente a su servidor y, como tales, deben considerarse como "potencialmente hostiles" de forma predeterminada. Si el cliente puede ser un atacante (y sería bastante ingenuo descartar esta posibilidad), entonces cualquier cosa que el cliente envíe es sospechosa y podría estar diseñada para maximizar la interrupción o hacer aún más cosas malvadas. . Los ataques de inyección SQL, por ejemplo, son un ejemplo común de ataques en los que el cliente envía solicitudes "malas". Las cookies, en ese sentido, no son diferentes. Una cookie se almacena en el lado del cliente, y el cliente puede modificar sus cookies cuando lo considere oportuno.
Dado que una cookie debe almacenarse "tal cual" y enviarse sin modificaciones (es decir, eso es lo que hacen los clientes honestos ), puede incluir en sus cookies a código de autenticación del mensaje : es un tipo de suma de comprobación que utiliza una clave secreta. De esta manera, su servidor podría verificar (volviendo a calcular la suma de comprobación en un valor de cookie entrante) si la cookie es "genuina", es decir, es un valor de cookie que, en algún momento, fue enviado por el servidor a un cliente (no necesariamente el mismo cliente! Si un cliente puede ser hostil, dos pueden ser hostiles también, y conspiran). Tal distinción entre cookies genuinas y creadas puede ayudar a proteger su servidor contra cookies hostiles; pero no reemplazará totalmente la atención y, por supuesto, una solicitud contiene otros elementos además de las cookies.
Las cookies (enviadas a través de HTTPS) tienen un valor de seguridad en otro escenario de ataque: si el cliente es honesto y administra su seguridad adecuadamente, luego las cookies que su servidor envía a la el cliente no se modificará durante su tránsito y volverá intacto y, además, el contenido de las cookies seguirá siendo desconocido para los forasteros (HTTPS se basa en SSL / TLS que proporciona confidencialidad e integridad para los datos en tránsito). HTTPS protege su servidor y el cliente contra terceros; no no protege su servidor contra el propio cliente.