Inserire le informazioni reali nei cookie, invece di archiviare un ID di sessione e mantenere il resto del lato del server di informazioni può (ma non deve) essere problematico. Ci sono due insidie che vuoi evitare:
- Fidare delle informazioni nel cookie senza convalida lato server, ad es. accettando un prezzo totale di $ 0,01 solo perché il cookie lo dice.
- Archiviazione di informazioni sensibili nei cookie, ad es. password o numeri di carta di credito.
Tuttavia, ci sono motivi legittimi per conservare le cose nei cookie. Potrei immaginare che potrebbe essere utile quando si implementa un carrello shoping e si desidera mantenere il contenuto sui caricamenti della pagina senza disturbare il server.
Quindi per sapere se c'è una vulnerabilità qui è necessario testare attentamente l'applicazione (proprio come hai già fatto). Prova a cambiare il prezzo. Prova ad ordinare un articolo che non dovresti essere in grado di ordinare. Prova a fornire spazzatura casuale. Prova a falsi sconti che non dovresti ottenere. Prova ad ordinare articoli non esistenti per ottenere la spedizione gratuita che ottieni solo quando ordini più di cinque articoli. Prova a iniziare due ordini in diversi browser e vedi se riesci a dirottarne uno cambiando l'ID ordine dell'altro. Ecc, ecc. Ecc.
Alcune app che si basano sui cookie per mantenere uno stato popoleranno un modulo lato client con i dati dal cookie, e quindi tale modulo viene inviato al server quando l'ordine viene inoltrato in modo che il server non si preoccupi mai del cookie. Se questo è il caso, dovresti probabilmente focalizzare il tuo test della penna sul modulo anziché sul cookie.
Per scrivere un codice sicuro, dovrai trattare i valori dei cookie con lo stesso scetticismo che tratti ogni input dell'utente anche se sei stato tu a impostare i valori. Quindi dovrai convalidare, fare l'autorizzazione, calcolare il prezzo corretto e così via server.
Quindi, per riassumere, la risposta è un'azienda "dipende".