È una vulnerabilità se i cookie di un'applicazione contengono informazioni sensibili?

1

Sto valutando una piccola applicazione web di e-commerce. Ho trovato che l'applicazione trasmette i dettagli dell'ordine, il costo, l'ID ordine ecc. Come parte del cookie. La manomissione non influisce sulle operazioni.

Tuttavia volevo sapere se questa è una pratica sicura da seguire? Possiede qualche minaccia? Inoltre, c'è qualche risorsa che fornisce le linee guida per le migliori pratiche di sicurezza per le applicazioni di e-commerce in modo che io possa fare riferimento allo stesso modo al mio cliente?

    
posta Tim 05.07.2016 - 02:12
fonte

4 risposte

3

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

    
risposta data 05.07.2016 - 10:44
fonte
0

Come hai già usato le parole "informazioni sensibili", non è consigliabile passare le informazioni nei cookie. Inoltre, se gli attributi sicuri e solo http non sono impostati, è facile per un utente malintenzionato leggere questi dati. Quindi la domanda che dovresti fare è "voglio che qualcuno acceda a queste informazioni?" Se la risposta è rigorosa no, allora non passarla.

    
risposta data 05.07.2016 - 12:21
fonte
0

Inserire le informazioni del carrello degli acquisti nel cookie, da solo, non è una vulnerabilità di sicurezza. Fintanto che non consente all'utente di fare qualcosa che non sono autorizzati a fare, come ordinare gli articoli a prezzi diversi dal prezzo reale o che influenzano i prezzi visti da altri utenti / venditori.

Un utente che è in grado di fare confusione con i propri display non è un problema di sicurezza, a condizione che il server non utilizzi le informazioni sul prezzo fornite dal client durante il calcolo del prezzo per la transazione effettiva.

Tuttavia, anche se questo potrebbe non essere un problema di sicurezza, l'uso dei cookie in questo modo è di scarsa qualità, poiché essenzialmente utilizza i cookie come forma di memorizzazione nella cache del lato client. Il problema è che i cookie vengono inviati al server su tutte le richieste e aggiunge un sovraccarico significativo a ciascuna richiesta HTTP se si dispone di molti dati nei cookie. Questo è stato un trucco comune decenni fa quando i siti hanno bisogno di memorizzare alcune informazioni sul client, ma i browser moderni supportano SessionStorage / LocalStorage e IndexedDB, che sono molto meglio per questo genere di cose.

    
risposta data 05.07.2016 - 14:42
fonte
0

Tampering with it does not affect the operations.

Ci sono 3 possibili spiegazioni:

1) Le informazioni nei cookie sono ridondanti

2) non hai ancora trovato la giusta combinazione di circostanze in cui il contenuto del cookie influisce sulla funzione

3) ha avuto un impatto ma non l'hai osservato

Chiaramente 2 sopra significherebbe che c'è una vulnerabilità nell'applicazione. Ma la prima spiegazione è ancora motivo di preoccupazione. Implica che l'applicazione stia perdendo informazioni, che gli sviluppatori non stiano prestando la dovuta attenzione e attenzione al codice che implementano o non stanno rimuovendo in modo pulito il codice ridondante dall'applicazione.

C'è solo uno scenario potenziale in cui questa sarebbe una buona idea - che consiste nell'utilizzare la memorizzazione dei cookie come cache - un catalogo di contenuti può essere generato utilizzando pagine memorizzabili in cache / statiche con javascript incorporato leggere i valori dal cookie e compilare un indicatore di paniere. Se questo fosse il caso, mi aspetterei di vedere l'indicatore cambiare quando il cookie è stato manomesso (ma al momento del checkout il server avrebbe memorizzato importi e valori) - ma hai detto che non c'era alcun impatto.

    
risposta data 05.07.2016 - 14:17
fonte

Leggi altre domande sui tag