Passa al contenuto principale

8. Considerazioni sulla sicurezza

Questa sezione intende informare sviluppatori, fornitori di informazioni e utenti dei problemi di sicurezza noti specifici della memorizzazione in cache HTTP. Considerazioni sulla sicurezza più generali sono affrontate nella messaggistica HTTP [RFC7230] e nella relativa semantica [RFC7231].

Le cache espongono ulteriori potenziali vulnerabilità, poiché il contenuto della cache rappresenta un obiettivo interessante per lo sfruttamento malevolo. Poiché il contenuto della cache persiste dopo il completamento di una richiesta HTTP, un attacco alla cache può rivelare informazioni molto tempo dopo che un utente ritiene che esse siano state rimosse dalla rete. Pertanto, il contenuto della cache deve essere protetto come informazione sensibile.

In particolare, vari attacchi possono essere amplificati dall'essere archiviati in una cache condivisa; tali attacchi di "avvelenamento della cache" usano la cache per distribuire un payload malevolo a molti client e sono particolarmente efficaci quando un attaccante può usare difetti di implementazione, privilegi elevati o altre tecniche per inserire tale risposta in una cache. Un vettore di attacco comune per l'avvelenamento della cache consiste nello sfruttare le differenze nell'analisi dei messaggi su proxy e user agent; per i requisiti pertinenti, vedere la sezione 3.3.3 di [RFC7230].

Allo stesso modo, i difetti di implementazione (nonché la cattiva comprensione del funzionamento della cache) possono portare a memorizzare in cache informazioni sensibili (ad esempio credenziali di autenticazione) che si ritengono private, esponendole a soggetti non autorizzati.

Inoltre, il semplice uso di una cache può comportare problemi di privacy. Ad esempio, se due utenti condividono una cache e il primo naviga verso un sito, il secondo potrebbe essere in grado di rilevare che l'altro è stato su quel sito, perché le risorse da esso provenienti si caricano più rapidamente grazie alla cache.

Si noti che il campo di intestazione di risposta Set-Cookie [RFC6265] non inibisce la memorizzazione in cache; una risposta memorizzabile in cache con un campo di intestazione Set-Cookie può essere (ed è spesso) usata per soddisfare richieste successive alle cache. I server che desiderano controllare la memorizzazione in cache di queste risposte sono incoraggiati a emettere gli opportuni campi di intestazione di risposta Cache-Control.