Inspeccioné nuestra aplicación web con la función de auditoría en las herramientas para desarrolladores de Google Chrome.Cómo entender una advertencia de seguridad en google chrome para un recurso estático servido por Asp.net
En primer lugar me dio una advertencia, que indica que estamos sirviendo a nuestro contenido estático ninguno cacheables: "Los siguientes recursos están explícitamente no aplicables a la caché Considere hacer el cacheable si es posible".
Para solucionar este añadí este fragmento a nuestra web-config
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>
como se recomienda en esta entrada del blog: http://blogs.msdn.com/b/carlosag/archive/2009/06/09/are-you-caching-your-images-and-scripts-iis-seo-can-tell-you.aspx
Si ahora comienzo a una nueva auditoría en Google Chrome, aparece un nueva advertencia:
Los siguientes recursos públicamente almacenados en caché contienen un encabezado Set-Cookie . Esta vulnerabilidad de seguridad puede hacer que las cookies sean compartidas por usuarios múltiples.
¿Puede explicar la posible amenaza a la seguridad y cuál es una posible solución en Asp.net?
[Actualización]
Después de algunas investigaciones más, supongo que esto podría estar relacionado con esta pregunta:
Why is ASP.NET forms authentication setting cookies on a static image request?
pero no puedo armar el rompecabezas. La situación no es exactamente la misma, mientras que nuestra aplicación podría configurarse para usar autenticación de formularios, recibí la advertencia al usar la autenticación de Windows.
¿Estás seguro de que los dos están conectados por evento? La amenaza de seguridad es bastante clara, la misma cookie podría ser utilizada por múltiples usuarios, esto no es un problema en una computadora de un solo usuario, por supuesto. –
@Ramhound Al menos las herramientas de Chrome piensan que hay una conexión.Si elimino la instrucción de caché del webconfig, recibo otra advertencia en su lugar: los siguientes recursos son explícitamente no almacenados en caché. Considere hacerlos cacheables si es posible: –
Puede agregar el encabezado 'Cache-Control' con un valor 'privado', que indica que el recurso puede ser almacenado en caché solo por un cliente pero no por máquinas intermedias. De esta forma, la misma cookie no debería devolverse a diferentes clientes. –