[SOLUCIONADO] MySQL y PHP Multiples transacciones a la vez

  • 1 Respuestas
  • 327 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Riojas

  • *
  • Underc0der
  • Mensajes: 60
  • Actividad:
    0%
  • Reputación 4
  • -RIOJAS
    • Ver Perfil
    • Arduino Center
    • Email
Buenas gente, vengo con una duda.
Tengo una web app en angular que consume una api en php y base de datos en MySQL
Esta app se encarga de generar unas etiquetas con un folio consecutivo según el último folio que exista en la base de datos.
Que pasaría si por ejemplo 5 usuarios están haciendo un tramite al mismo tiempo
En ese momento todos los trámites tendrían el mismo folio.
Como evitar eso?.
El folio siguiente hay que traerlo cuando el usuario entra a la vista de generar etiqueta ya que hay que mostrarlo en un preview de dicha etiqueta.
Agradezco sus comentarios y sugerencias.
Gracias!
« Última modificación: Junio 17, 2020, 12:51:00 am por AXCESS »

Desconectado Mortal_Poison

  • *
  • Ex-Staff
  • *****
  • Mensajes: 202
  • Actividad:
    0%
  • Country: co
  • Reputación 16
  • Become the change you seek in the world. -Gandhi.
  • Twitter: https://www.twitter.com/Mortal_Poison_
    • Ver Perfil
    • XECURE-LABS

Re:MySQL y PHP Multiples transacciones a la vez

  • en: Junio 06, 2020, 01:37:32 pm
Hola You are not allowed to view links. Register or Login

Correcto, eso puede suceder y me lo he topado en varios ocasiones xD. Lo que tú quieres decir se llaman "Condiciones de Carrera" o más conocidas como "Race Conditions", las cuales permiten a un atacante explotar una vulnerabilidad en un mismo lapso de tiempo(para ser preciso, en el tiempo exacto) de las solicitudes o requests. Este tipo de vulnerabilidades, son comunes pero no son muy conocidas.

Para no ahondar más en el tema(puedes seguir buscando más acerca de este tema), te podría mencionar que una de las soluciones que se suelen implementar son los bloqueos. Los bloqueos te garantizarán que en cualquier momento, solo un subproceso pueda modificar la base de datos. Recuerda que muchas bases de datos proporcionan esta funcionalidad para bloquear las filas cuando un hilo está accediendo a esta.

Por último, alguna vez escuché que alguien recomendaba siempre "leer tus escrituras" y no estaba en lo equivocado; deberás siempre garantizar y validar que verificarás tus registros si existe algún cambio(campo por campo).

Un saludo.
Become the change you seek in the world. -Gandhi.