¿Protección CSRF para solicitudes, acciones, búsquedas o comentarios no autenticados?

4

He pasado por el ejemplo de transferencia de fondos CSRF desde un banco donde el usuario ha iniciado sesión. Del mismo modo, he mirado CSRF en caso de actualización de correo electrónico. Creo que lo entendí, pero no estoy seguro de si se extiende también a las solicitudes no autenticadas / a las presentaciones de formularios. Ahora estoy tratando de averiguar el impacto de CSRF, particularmente en referencia al contexto que se proporciona a continuación.

Supongamos un sitio web de compras donde los usuarios autenticados y no autenticados pueden navegar y comprar. Imagine un escenario en el que un usuario no autenticado navega y agrega un artículo a su carrito (aún no autenticado). Más tarde decide realizar el pago y se le redirige a la página de pago sin iniciar sesión (el usuario invitado no autorizado o acceso a este último ha sido escalado. El usuario ahora ingresa su información personal (sobre SSL) como correo electrónico, dirección, teléfono, información de tarjeta de crédito , etc. Su compra está completa y cierra la aplicación. Puede rastrear / actualizar el pedido usando el enlace enviado a su correo electrónico o número de pedido.

  1. Dado que el usuario nunca puede autenticarse en esta aplicación, ¿es necesario que todos los formularios / solicitudes aún estén protegidos contra CSRF? Si no, ¿en qué caso se debe implementar la protección CSRF?

  2. ¿Además, las búsquedas deben estar protegidas contra CSRF para usuarios no autenticados o no registrados? Sería genial si pudiera responder por ambos. ¿Qué hay de los comentarios de los visitantes (no registrados)?

  3. ¿Se requieren comprobaciones de referencia incluso después de que los tokens se utilizan para la protección CSRF? No lo creo, todavía me estoy asegurando. (No está particularmente relacionado con el escenario anterior).

  4. ¿Qué importancia tiene iniciar sesión en CSRF para sitios web de comercio electrónico?

Avíseme si me he perdido algo aquí, todavía estoy tratando de entender completamente CSRF, su impacto y los riesgos asociados en varios escenarios.

P.S. Algunos escáneres lanzan CSRF en cada envío de formulario sin tokens aleatorios o comprobaciones de referencia.

    
pregunta Sanchit Sharma 13.04.2015 - 12:18
fuente

2 respuestas

4
  

1.Como el usuario nunca puede / no se autentica en esta aplicación, ¿es necesario que todos los formularios / solicitudes aún estén protegidos contra CSRF? Si no es así, ¿en qué caso se debe implementar la protección CSRF?

Si el usuario tiene algún tipo de estado de sesión confidencial con la aplicación, se recomienda CSRF.

Es posible que desee protegerse contra CSRF por agregar productos a la canasta. Sin embargo, si no lo hace, puede encontrar un riesgo aceptable en lugar de mostrarle al usuario los contenidos de su cesta y pedirle que confirme antes de proceder al pago. De esta manera, estarían al tanto si se hubiera cambiado algo en su cesta antes de proceder al pago. Por supuesto, el formulario de confirmación en sí debería tener protección CSRF y debería tomar el resto del estado de pago del formulario mostrado, en lugar de la sesión, ya que aún podría ser susceptible de ataques mientras la página se muestra al usuario.

  

2. ¿Además, las búsquedas deben estar protegidas contra CSRF para usuarios no autenticados o registrados? Sería genial si pudiera responder por ambos. ¿Qué hay de los comentarios de los visitantes (no registrados)?

Solo necesita proteger las solicitudes "no seguras". Es decir, acciones en su aplicación que cambian de estado. Consulte RFC 7231 para obtener detalles sobre solicitudes seguras. Las solicitudes inseguras generalmente se implementan a través del método POST, por lo que debe enfocarse en proteger todas las solicitudes POST en lugar de las solicitudes GET. Esto es asumiendo que todas las solicitudes no seguras son POST (deberían ser si se implementan correctamente).

  

3.¿Se requieren comprobaciones de referencia incluso después de que los Tokens se utilizan para la protección CSRF? No lo creo, todavía me estoy asegurando. (No está particularmente relacionado con el escenario anterior).

No,

  

¿Qué importancia tiene iniciar sesión CSRF para los sitios web de comercio electrónico?

Muy importante. No desea que su sitio sea vulnerable a los atacantes que envíen o cambien órdenes, datos personales o contraseñas (especialmente si permiten el acceso a los detalles de la tarjeta). Incluso sin autenticación, aún debe proteger la sesión del usuario actual a medida que realizan su pedido.

    
fuente
0

Si bien la respuesta de @ SilverlightFox a la pregunta dos es correcta, no es solo el cambio de estado contra el que protege un token CSRF. Los ataques de sincronización de dominios cruzados podrían revelar información confidencial dentro del índice de búsqueda (consulte enlace para más información).

Por eso es esencial proteger incluso la búsqueda con un token CSRF.

    
respondido por el James 19.09.2015 - 02:23
fuente

Lea otras preguntas en las etiquetas