Sistema que administra dinero real

2

Estoy trabajando en un proyecto que incorpora dinero real en las cuentas de las personas. Sus cuentas se almacenan en una base de datos MySQL y en su interior hay una columna llamada "BALANCE".

Cuando los usuarios envían dinero a través de PayPal, la API de PayPal realizará una devolución de llamada a mi servidor, lo que acreditará a los usuarios el saldo de todo lo que hayan enviado a través de PayPal.

El problema es que planeo hacer que solo sea posible el acceso a la parte de balance de los usuarios que alteran mi aplicación. La forma en que se actualiza el saldo es a través de la URL, simplemente configurando el método como un GET y estableciendo la cantidad como sea y acredita el saldo.

No quiero que las personas solo puedan visitar esa URL de devolución de llamada y seguir actualizando su saldo de manera fraudulenta.

¿Qué seguridad podría implementar que solo permita que se realicen cambios legítimos en el equilibrio?

Lo siento si no expliqué esto demasiado bien. Si alguien tiene preguntas, intentaré explicarlo mejor. Gracias.

    
pregunta Alec 16.06.2014 - 07:56
fuente

2 respuestas

4

Apreciaré la opinión de Lucas de que probablemente deberías encontrar a alguien más experimentado que tú para hacer esto (también deberías encontrar a alguien más experimentado que yo). Dicho esto, intentaré responder tu pregunta.

La API de PayPal debe proporcionar un ID de transacción o algún otro valor único. Registre eso en su registro de transacciones (usted tiene tiene uno, ¿no es así?); Si ve ese valor en una transacción posterior, sabe que la transacción no es válida. Registre la transacción no válida en su registro de auditoría (también tiene una de esas, ¿no?) E ignórela.

    
respondido por el Mark 16.06.2014 - 10:34
fuente
0

La seguridad es como comprar una caja fuerte. Si planea mantener cosas de valor real dentro (dinero, secretos de la industria, etc.), entonces invierte en seguridad (probablemente de múltiples capas).

Usted describió bien una capa de seguridad. La actualización de DB se limita a la aplicación. De todos modos, ¿cuál de los dos tiene la oportunidad de ejecutar código en el espacio de su aplicación o intercepta las credenciales y, mediante el uso de suplantación de identidad, hace que el DB cree que la solicitud proviene de la IP de la aplicación?

Piense en lo siguiente:

  • estás operando como un banco? Es posible que necesite una licencia bancaria y el cumplimiento de algunas reglas de seguridad draconianas (pero muy útiles y llenas de sentido).
  • ¿la gente puede lavar / anonimizar dinero usando su sistema? Esto puede ponerlo en conflicto con el derecho internacional, incluso si está en cuadratura con el gobierno local.
  • ¿Qué pasa si tu base de datos se corrompe? ¿Eres capaz de restaurar las transacciones?
  • ¿Qué sucede si los clientes actualizan su cuenta simultáneamente? ¿Inicia usted una transacción o permite el doble gasto de los fondos?
  • ¿Necesita operaciones 24/7? ¿Cómo va a actualizar / mantener su base de datos MySQL?
  • tienes empleados? ¿Tiene algún mecanismo para protegerse de amenazas internas?
respondido por el user166832 02.01.2018 - 23:07
fuente

Lea otras preguntas en las etiquetas