2012-08-12 7 views
5

Estoy usando asp.net 4. me pregunto si será seguro para el almacenamiento en caché de datos confidenciales? ¿es peligroso en cuanto a la seguridad o cualquier otro problema de seguridad?¿Los datos confidenciales de caché de .net serán peligrosos en cuanto a la seguridad o tendrán algún problema de seguridad?

+0

a qué mecanismo de caché se refiere también – Pleun

+0

sí, como: Cache.Add ("MyCacheName", "MyValue", null, ExpDate, Cache.NoSlidingExpiration, CacheItemPriority.Default, null); –

Respuesta

3

Bueno, sí. Inherentemente aferrarse a algo significa que hay más posibilidades de que alguien que no debería obtenerlo lo consiga. Si es sensible, entonces es un peligro recientemente introducido.

Las dos preguntas pertinentes son:

  1. ¿Qué tan probable es que sea filtró.
  2. Qué tan sensible es esto.

Es poco probable que se filtre algo guardado en la memoria caché, pero es posible.

Algo almacenado en memoria caché y accesible a través de una sesión o una cookie es más probable que se filtre (secuestrar la sesión o la cookie, respectivamente).

Es más probable que se filtre algo almacenado en la memoria caché en una base de datos (es más fácil robar un archivo que un volcado de memoria).

Tómese un ejemplo del mundo real, sitios web que tienen la opción "recordarme". Esto lo hace, y la mayoría de los sitios sociales lo hacen. Aumenta el riesgo de que alguien pueda obtener los datos necesarios para hacerse pasar por usted, pero realmente, lo peor que esto podría significar es que vayan por Spamming hasta que su cuenta sea prohibida, molesto pero no el fin del mundo.

La mayoría de los sitios bancarios no tienen la opción "recordarme". El riesgo de fuga es tan bajo (incluso menor si insisten en confirmar antes de ciertas operaciones), pero el valor de los datos equivalentes es mucho mayor y el riesgo ya no es aceptable.

Editar: Una cosa importante a tener en cuenta en el ejemplo que doy. Los sitios que "te recuerdan" lo hacen recordando de alguna manera que estás conectado, no el usuario/pase necesario para hacerlo (los sitios como este que usan OpenID ni siquiera ven un usuario/pase). Si estaba recordando un usuario/pase, corre el riesgo de filtrar un usuario/pase utilizado en muchos sitios, en lugar de arriesgarse a que alguien inicie sesión solo en su sitio, por lo que el riesgo es mucho más alto nuevamente.

1

Depende de lo que haga con él. Los datos se guardan en la memoria del servidor web. No habría forma de acceder a estos datos, a menos que haya escrito una forma de hacerlo, o el atacante haya tenido acceso a su código fuente & para acceder a la escritura de la aplicación web.

+0

Una vez que un usuario está autenticado, en lugar de tener 10 sesiones, como sesión ("nombre de usuario"), sesión ("departamento"), etc .; ¿Sugiere agregar un objeto a la memoria caché con los 10 atributos? Por ejemplo, tengo un método: Sub [Set] (clave As String, datos como objeto, minutesToCache As CacheTimes) – JoshYates1980

2

de acuerdo con el patrón de Microsoft & prácticas esto lo que sugieren

Do not cache sensitive data

Si su método de servicio contiene datos que son sensibles, tales como contraseña, número de tarjeta de crédito, o el estado de cuenta, no debe ser en caché. Si los datos confidenciales se almacenan en caché en la máquina del cliente, tiene serias implicaciones de seguridad porque deja datos interesantes disponibles para los atacantes.

realice los siguientes pasos para asegurar que los datos sensibles no es caché:

operaciones de revisión para los datos sensibles. Revise todas sus operaciones para el uso de datos confidenciales. Esto podría incluir, pero no se limitan a: Información que contiene información de identificación personal (PII) o se puede utilizar para derivar información de identificación personal que no debe ser compartida con usuarios de la información proporcionada por el usuario que no querría compartir con otra usuarios de la aplicación Información que proviene de una fuente externa de confianza que no está diseñada para ser compartida con los usuarios Revise las operaciones para el almacenamiento en caché de datos confidenciales. Revise cómo cada operación gestiona datos confidenciales y se asegura de que no se almacenan en caché. Existen tres patrones de almacenamiento en caché de datos sensibles que pueda revisar para: Código de almacenamiento en caché personalizado como el uso de un diccionario o SortedList objeto Uso de la caché ASP.NET mediante System.Web.Caching.Cache. El uso de un bloque de almacenamiento en caché Enterprise Library

+0

Quiero almacenar en la clave GUID de caché y correo de usuario para identificar al usuario cómo permanecer conectado pero cerré la página web, por lo cuando abra mi sitio, iniciará sesión automáticamente. estos datos son confidenciales porque si alguien tiene esta clave y el correo puede iniciar sesión en esta cuenta. ¿Es razonable almacenar este tipo de datos en el caché? Gracias –

0

que tienden a almacenar en caché los datos cifrados y sólo hacer descifrado en el punto de pedido. Finalmente poniendo a cero la memoria.

Adivina si se dejó en la memoria, en texto sin formato, no sería demasiado difícil para un atacante solucionar los problemas de un volcado de memoria.

Cuestiones relacionadas