Sistema che gestisce denaro reale

2

Sto lavorando a un progetto che incorpora il denaro reale nei conti delle persone. I loro account sono memorizzati in un database MySQL e al suo interno c'è una colonna chiamata "BALANCE".

Quando gli utenti inviano denaro tramite PayPal, l'API di PayPal effettua una richiamata al mio server che accrediterà agli utenti il saldo con qualsiasi cosa abbiano inviato tramite PayPal.

Il problema è che ho intenzione di rendere la parte dell'equilibrio degli utenti alterati accessibile solo dalla mia applicazione. Il modo in cui il saldo viene aggiornato è dall'URL semplicemente impostando il metodo come GET e impostando l'importo su qualsiasi valore e accredita il saldo.

Non voglio che le persone siano in grado di visitare l'URL di richiamata e continuare ad aggiornare il proprio saldo in modo fraudolento.

Quale sicurezza sarei in grado di mettere in atto per consentire solo modifiche legittime all'equilibrio?

Scusa se non l'ho spiegato troppo bene Se qualcuno ha delle domande, cercherò di spiegarlo meglio. Grazie.

    
posta Alec 16.06.2014 - 07:56
fonte

2 risposte

4

Seguirò l'opinione di Lucas secondo cui probabilmente dovresti trovare qualcuno più esperto di te per farlo (dovresti trovare qualcuno più esperto di me). Detto questo, cercherò di rispondere alla tua domanda.

L'API di PayPal dovrebbe fornire un ID transazione o qualche altro valore univoco. Registra quello nel tuo log delle transazioni (tu fai ne hai uno, vero?); se vedi quel valore in una transazione successiva, sai che la transazione non è valida. Registra la transazione non valida nel tuo registro di controllo (ne hai una anche tu, giusto?) E ignorala.

    
risposta data 16.06.2014 - 10:34
fonte
0

La sicurezza è come comprare una cassastrong. Se hai intenzione di mantenere le cose di valore reale all'interno (denaro, segreti industriali, ecc.), Allora investi nella sicurezza (probabilmente multi-livello).

Hai descritto bene un livello di sicurezza. L'aggiornamento del DB è limitato all'applicazione. Tuttavia, quello che uno ha la possibilità di eseguire il codice nello spazio della vostra applicazione, o intercetta le credenziali, e usando lo spoofing, fa credere al DB che la richiesta provenga dall'IP dell'applicazione?

Pensa a quanto segue:

  • stai operando come una banca? Potresti richiedere una licenza bancaria e la conformità ad alcune regole di sicurezza Draconiane (ma molto utili e complete)
  • le persone possono riciclare / rendere anonimi i soldi usando il tuo sistema? Ciò potrebbe metterti in conflitto con la legge internazionale, anche se sei in accordo con il governo locale.
  • cosa succede se il tuo database viene danneggiato? Sei in grado di ripristinare le transazioni?
  • cosa succede se i clienti aggiornano contemporaneamente il loro account? Avvii una transazione o autorizzi il doppio della spesa dei fondi?
  • hai bisogno di operazioni 24/7? Come hai intenzione di aggiornare / mantenere il tuo DB MySQL?
  • hai dei dipendenti? Avete qualche meccanismo per proteggere dalle minacce interne?
risposta data 02.01.2018 - 23:07
fonte

Leggi altre domande sui tag