¿Es el control de caché: no hay caché suficiente para información confidencial como cuentas bancarias, etc.?

3

He leído en alguna parte que al almacenar información confidencial en un sitio web, debe incluir cache-control: no-store para decirle al navegador que no almacene esa información en el sistema local. Pero creo que cuando se usa cache-control: no-cache , solo le dice al navegador que no almacene en caché esa página.

Así que durante mi una de mis evaluaciones de seguridad, me topé con un sitio web que usa solo el encabezado cache-control: no-cache en respuestas que contienen información confidencial como claves API, tarjetas de crédito y cuentas bancarias.

¿Deben esas respuestas contener cache-control: no-store , pragma: no-cache en las respuestas para una mejor seguridad o es cache-control: no-cache suficiente?

    
pregunta tester 04.09.2018 - 17:07
fuente

1 respuesta

2

No, cache-control: no-cache no evitará que la memoria caché del navegador almacene datos de respuesta. Utilice cache-control: no-store en su lugar.

Según RFC 7234, sección 5.2.2.2 :

  

La directiva de respuesta "no caché" indica que la respuesta NO DEBE usarse para satisfacer una solicitud posterior sin una validación exitosa en el servidor de origen.

Tenga en cuenta que "sin una validación exitosa" implica que la respuesta en caché puede ser utilizada si la validación con el servidor de origen se realiza correctamente. (El proceso de validación se describe en la sección 4.3 ). Por lo tanto, cache-control: no-cache no impide que el agente de usuario desde el almacenamiento del contenido de la respuesta.

pragma: no-cache también es incorrecto por el mismo motivo. Consulte RFC 7234, sección 5.4 :

  

Cuando el campo del encabezado Cache-Control no está presente en una solicitud, las caches DEBEN considerar que la directiva pragma de solicitud no-cache tiene el mismo efecto que si "Cache-Control: no-cache" estuviera presente (consulte la Sección 5.2 .1).

En contraste, RFC 7234, sección 5.2.2.3 dice:

  

La directiva de respuesta "no almacenar" indica que una memoria caché NO DEBE almacenar ninguna parte de la solicitud o respuesta inmediata. Esta directiva se aplica a los cachés privados y compartidos. "NO DEBE almacenar" en este contexto significa que la memoria caché NO DEBE almacenar intencionalmente la información en un almacenamiento no volátil, y DEBE hacer un esfuerzo por eliminar la información del almacenamiento volátil tan pronto como sea posible después de reenviarla.

Esto suena mucho más cerca de lo que estás buscando.

    
respondido por el Ajedi32 04.09.2018 - 17:48
fuente

Lea otras preguntas en las etiquetas