I cookie che vengono inviati dal client al tuo server sono solo parti delle richieste inviate dal client al tuo server e, come tali, dovrebbero essere considerate come "potenzialmente ostili" per impostazione predefinita. Se il cliente può essere un attaccante (e sarebbe ingenuo ignorare questa possibilità), allora qualsiasi cosa che il client invia è sospetto e potrebbe essere creato per massimizzare le interruzioni o fare cose ancora più malvagie . Gli attacchi di SQL injection, ad esempio, sono un esempio comune di attacchi in cui il client invia richieste "cattive". I cookie, a tale riguardo, non sono diversi. Un cookie è memorizzato sul lato client e il cliente può modificare i suoi cookie come meglio crede.
Dato che un cookie deve essere memorizzato "così com'è" e rimandato inalterato (cioè, questo è ciò che fanno i client onesti ), puoi includere nei cookie un codice di autenticazione dei messaggi : è una sorta di checksum che utilizza una chiave segreta. In questo modo, il tuo server potrebbe verificare (ricalcando il checksum su un valore del cookie in ingresso) se il cookie è "genuino", ovvero un valore del cookie che, ad un certo punto nel tempo, è stato inviato dal server a un client (non necessariamente lo stesso client stesso Se un cliente può essere ostile, anche due possono essere ostili e colludere). Tale distinzione tra cookie originali e artigianali può aiutare a proteggere il server da cookie ostili; ma non sostituirà totalmente la cura e, ovviamente, una richiesta contiene altri elementi oltre ai cookie.
I cookie (inviati tramite HTTPS) hanno un valore di sicurezza in un altro scenario di attacco: se il client è onesto e gestisce correttamente la sua sicurezza, quindi i cookie che il tuo server invia al il cliente rimarrà inalterato durante il suo transito, e tornerà intatto, e, inoltre, il contenuto dei cookie rimarrà sconosciuto agli estranei (HTTPS si basa su SSL / TLS che fornisce riservatezza e integrità per i dati in transito). HTTPS protegge il tuo server e il client da terze parti; non protegge il tuo server contro il client stesso.