Response.Cache.SetCacheability(HttpCacheability.ServerAndNoCache);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Prevenir almacenamiento de páginas en caché en ASP.NET.
A continuación se describe las circunstancias bajo las cuales la siguiente solución tiene sentido:
Se está desarrollando una aplicación WEB en ASP.NET.
El sistema no debe almacenar información sensible en archivos temporales o en memoria caché.[1]
La memoria caché es una memoria auxiliar de acceso rápido, la cual se encarga de almacenar de manera temporal los datos recientes y más frecuentados del usuario. Cuando se accede por primera vez a un dato, se guarda una copia de éste dentro de la memoria caché de forma que el siguiente acceso se realice a dicha copia, reduciendo el tiempo de acceso y mejorando el rendimiento.
El caché web, es un tipo especial de caché, que tiene por objetivo reducir el ancho de banda consumido, la carga de los servidores y el retraso de las descargas [2]. Dentro de esta categoría se distinguen 3 tipos de caché web:
Privados: Funciona para un usuario.
Compartidos: Funcionan para varios usuarios.
Pasarela: Funcionan para un servidor.
En el ámbito del desarrollo web, es frecuente que las aplicaciones puedan aumentar el rendimiento si se almacenan en la memoria caché los datos a los que se tiene acceso de forma frecuente y cuya creación requiere un tiempo de procesamiento significativo [3]. Uno de los factores más críticos a la hora de crear aplicaciones Web, que sean escalables y de alto rendimiento es la capacidad para almacenar elementos en memoria, ya sean objetos de datos, páginas o secciones de páginas en el momento en el que son solicitados [4]. Sin embargo, para mejorar la confidencialidad, es importante limitar ciertas páginas de la aplicación de ser almacenadas en caché por el navegador web. Esto evita que un atacante con acceso a la máquina de un usuario legítimo pueda obtener información de las páginas visitadas.
Para prevenir el almacenamiento de páginas en caché se modifica el Page_Load[5] de la página en cuestión. Agregando cualquiera de las siguientes líneas:
Response.Cache.SetCacheability(HttpCacheability.ServerAndNoCache);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Cada vez que se haga clic en un botón hacia delante o hacia atrás del explorador, o cualquier evento que genere un POSTBACK, se solicitará al servidor una nueva versión de la página.
Copyright © 2021 Fluid Attacks, We hack your software. All rights reserved.