¿Es una vulnerabilidad si las cookies de una aplicación contienen información confidencial?

1

Estoy evaluando una pequeña aplicación web de comercio electrónico. Descubrí que la aplicación pasa los detalles del pedido, el costo, la identificación del pedido, etc. como parte de la cookie. La manipulación no afecta a las operaciones.

Sin embargo, quería saber si esta es una práctica segura a seguir. ¿Posee alguna amenaza? Además, ¿hay algún recurso que ofrezca pautas sobre las mejores prácticas de seguridad para las aplicaciones de comercio electrónico para que pueda hacer referencia a mi cliente?

    
pregunta Tim 05.07.2016 - 02:12
fuente

4 respuestas

3

Poner la información real en cookies, en lugar de solo almacenar una ID de sesión y mantener el resto del lado del servidor de información puede (pero no tiene que) ser problemático. Hay dos errores que desea evitar:

  • Confiar en la información en la cookie sin validación del lado del servidor, por ejemplo. aceptando un precio total de $ 0.01 solo porque la cookie lo dice.
  • Almacenar información confidencial en las cookies, por ejemplo, contraseñas o números de tarjetas de crédito.

Sin embargo, hay razones legítimas para almacenar cosas en las cookies. Podría imaginar que podría ser útil al implementar un carrito de compras y desea conservar el contenido durante las cargas de página sin tener que preocuparse por el servidor.

Entonces, para saber si hay una vulnerabilidad aquí, debe probar cuidadosamente la aplicación (tal como lo ha hecho). Intenta cambiar el precio. Intente ordenar un artículo que no debería poder ordenar. Trate de proporcionar basura aleatoria. Intenta falsificar descuentos que no deberías obtener. Trate de ordenar artículos no existentes para obtener el envío gratuito que solo obtiene al ordenar más de cinco artículos. Intente iniciar dos pedidos en diferentes navegadores y vea si puede secuestrar uno de ellos cambiando el ID de pedido del otro. Etc., etc., etc.

Algunas aplicaciones que dependen de las cookies para mantener un estado llenarán el formulario del lado del cliente con los datos de la cookie, y luego ese formulario se envía al servidor cuando se envía el pedido, por lo que el servidor nunca se molestará con la cookie. Si ese es el caso aquí, probablemente debería enfocar su prueba de lápiz en el formulario en lugar de la cookie.

Para escribir código de seguridad, deberá tratar los valores de las cookies con el mismo escepticismo que trata con cualquier entrada del usuario , aunque fue usted quien estableció los valores. Por lo tanto, deberá validar, hacer la autorización, calcular el precio correcto y así sucesivamente en el lado del servidor.

Entonces, para resumir, la respuesta es una firma "depende".

    
respondido por el Anders 05.07.2016 - 10:44
fuente
0

Como ya usó las palabras "información confidencial", no se recomienda pasar la información en las cookies. Además, si los atributos de seguridad y solo http no están establecidos, es fácil para un atacante leer estos datos. Entonces, la pregunta que debe hacer, "¿quiero que alguien acceda a esta información?" Si la respuesta es estricta no, entonces no la pases.

    
respondido por el one 05.07.2016 - 12:21
fuente
0

Poner la información del carrito de la compra en la cookie, por sí solo, no es una vulnerabilidad de seguridad. Siempre que no le permita al usuario hacer lo que no puede hacer, como pedir artículos a un precio diferente al precio real o afectar los precios vistos por otros usuarios / vendedores.

Un usuario que puede jugar con sus propias pantallas no es un problema de seguridad, siempre que el servidor no utilice la información de precios proporcionada por el cliente al calcular el precio de la transacción real.

Pero aunque esto puede no ser un problema de seguridad, el uso de cookies de esta manera es un diseño deficiente, ya que esencialmente utiliza cookies como una forma de almacenamiento en caché del lado del cliente. El problema es que las cookies se envían al servidor en todas las solicitudes, y agrega una sobrecarga significativa a cada solicitud HTTP si tiene muchos datos en las cookies. Este era un truco común décadas atrás cuando los sitios necesitan almacenar cierta información en el cliente, pero los navegadores modernos son compatibles con SessionStorage / LocalStorage e IndexedDB, que son mucho mejores para este tipo de cosas.

    
respondido por el Lie Ryan 05.07.2016 - 14:42
fuente
0
  

La manipulación no afecta a las operaciones.

Hay 3 explicaciones posibles:

1) La información en las cookies es redundante

2) aún no ha encontrado la combinación adecuada de circunstancias en las que el contenido de la cookie afecta la función

3) tuvo un impacto pero no lo observaste

Claramente 2 arriba significaría que hay una vulnerabilidad en la aplicación. Pero la primera explicación sigue siendo un motivo de preocupación. Implica que la aplicación está filtrando información, que los desarrolladores no están prestando la debida atención al código que implementan o que no están eliminando limpiamente el código redundante de la aplicación.

Hay solo un escenario potencial en el que sería una buena idea , es decir, usar el almacenamiento de cookies como caché. Se podría generar un catálogo de contenido utilizando páginas cacheables / estáticas con javascript incorporado. para leer los valores de la cookie y rellenar un indicador de cesta. Si este fuera el caso, entonces esperaría ver un cambio en el indicador cuando la cookie fue manipulada (pero al realizar el pago se mostrarían las cantidades y valores almacenados en el servidor), pero usted dijo que no hubo impacto.

    
respondido por el symcbean 05.07.2016 - 14:17
fuente

Lea otras preguntas en las etiquetas