2009-05-19 10 views
6

duplicado exacto: How to handle multiple submissions server-sidePrevención de envíos de formularios dobles

La tarea general que nos ocupa: la prevención de una presentación doble forma en una aplicación basada en multi-usuario de la web. Piensa en las transacciones financieras.

Tengo dos métodos que se pueden utilizar en conjunto:

  1. JavaScript desactivación del botón
    • Desventaja: no funciona si javascript está deshabilitado
  2. VERIFICACIÓN back-end - vea cuánto hace que la última solicitud de este tipo proviene de este usuario y genera un error si no hace mucho tiempo
    • Desventaja: Si las dos presentaciones son lo suficientemente cerca juntos, cada uno no puede ser capaz de ser consciente de la otra

Busco expertos en la materia para contribuir con sus mejores prácticas, así como trucos esotéricos . Puede ser cualquier lenguaje y marco, pero Django es de interés específico. Se ha escrito mucho en la web sobre la tarea en cuestión, pero sería bueno tener las mejores prácticas que se muestran aquí.

+0

Esto se ha cerrado, pero ¿dónde están las preguntas similares? La etiqueta de prevención de envío doble no muestra el mismo escenario de problema exacto. – vsingh

Respuesta

8

La solución común es generar un token en el servidor cada vez que genera un formulario. Almacene el token en el servidor, agréguelo como un campo oculto al formulario y elimínelo una vez que reciba un formulario con ese token.

Si recibe un formulario sin un token válido, significa que el formulario ya se ha enviado y lo ignora.

Esto tiene la ventaja añadida de agregar protección XSRF a su proyecto.

Cuestiones relacionadas