Controllo della cache: nessuna cache sufficiente per informazioni sensibili come conti bancari, ecc.?

3

Ho letto da qualche parte che quando si memorizzano informazioni sensibili su un sito web si dovrebbe includere cache-control: no-store per dire al browser di non memorizzare quelle informazioni sul sistema locale. Ma penso che quando viene utilizzato cache-control: no-cache , dice semplicemente al browser di non memorizzare nella cache quella pagina.

Durante una delle mie valutazioni sulla sicurezza, mi sono imbattuto in un sito web che utilizza solo cache-control: no-cache intestazione in risposte contenenti informazioni sensibili come chiavi API, carte di credito e conti bancari.

Queste risposte dovrebbero contenere cache-control: no-store , pragma: no-cache in risposte per una sicurezza migliore o cache-control: no-cache sufficiente?

    
posta tester 04.09.2018 - 17:07
fonte

1 risposta

2

No, cache-control: no-cache non impedirà a una cache del browser di memorizzare i dati di risposta. Usa cache-control: no-store invece.

In base a RFC 7234, sezione 5.2.2.2 :

The "no-cache" response directive indicates that the response MUST NOT be used to satisfy a subsequent request without successful validation on the origin server.

Si noti che "senza validazione riuscita" implica che la risposta memorizzata nella cache può essere utilizzata se la convalida con il server di origine ha esito positivo. (Il processo di convalida è descritto in sezione 4.3 .) Pertanto, cache-control: no-cache non impedisce l'agente utente dalla memorizzazione del contenuto della risposta.

pragma: no-cache non è corretto per lo stesso motivo. Vedi RFC 7234, sezione 5.4 :

When the Cache-Control header field is not present in a request, caches MUST consider the no-cache request pragma-directive as having the same effect as if "Cache-Control: no-cache" were present (see Section 5.2.1).

Al contrario, RFC 7234, sezione 5.2.2.3 dice:

The "no-store" response directive indicates that a cache MUST NOT store any part of either the immediate request or response. This directive applies to both private and shared caches. "MUST NOT store" in this context means that the cache MUST NOT intentionally store the information in non-volatile storage, and MUST make a best-effort attempt to remove the information from volatile storage as promptly as possible after forwarding it.

Questo sembra molto più vicino a quello che stai cercando.

    
risposta data 04.09.2018 - 17:48
fonte