Joven hacker sonriendo

Prevenir almacenamiento de páginas en caché

Nuestros ethical hackers explican cómo evitar vulnerabilidades de seguridad mediante la programación segura en ASPNET al prevenir almacenamiento de páginas en caché. El caché es muy utilizado en aplicaciones web, sin embargo es tambíen una fuente potencial de vulnerabilidades.

Necesidad

Prevenir almacenamiento de páginas en caché en ASP.NET.

Contexto

A continuación se describe las circunstancias bajo las cuales la siguiente solución tiene sentido:

  1. Se está desarrollando una aplicación WEB en ASP.NET.

  2. El sistema no debe almacenar información sensible en archivos temporales o en memoria caché.[1]

Solución

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.

  1. 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:

    test.py
    1
    2
    Response.Cache.SetCacheability(HttpCacheability.ServerAndNoCache);
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    
  2. 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.




Haz un comentario

Estado de los servicios - Términos de Uso