Secure Hidden Inputs in Paypal

1

Sto cercando di creare un sistema che accetti pagamenti tramite Paypal. Sono riuscito a crearne uno usando un account sandbox. Il processo del sistema è che selezioneranno un prodotto (proveniente dal mio database), fare clic sul pulsante "Acquista" del loro prodotto preferito, quindi reindirizzare l'utente a Paypal. Dopo aver pagato con successo, eseguirà un Instant Payment Notifications (IPN) che inserirà l'ID della transazione, insieme all'ID prodotto (input nascosto), lo stato, il prezzo, la valuta, ecc. Nel mio database MySQL. Tutto va bene.

Ma il mio problema è che se un utente malintenzionato modifica i campi di input nascosti, può modificare i dati del prodotto che acquisteranno (ID prodotto, prezzo, ecc.). Così ho provato a creare un pulsante che suggerisce Paypal (pulsante crittografato) , che devi inserire i prodotti in Paypal insieme al loro ID prodotto corrispondente dal mio database, che se ci pensi, è noioso e non un approccio convenzionale. O ho appena frainteso il tutorial?

Qualunque approccio migliore?

    
posta Logan Wayne 02.02.2017 - 07:44
fonte

1 risposta

1

Stai pensando che l'intera soluzione sia sbagliata. I pulsanti ospitati sono pensati per i casi in cui hai alcuni prodotti.

Il mio suggerimento, usa la variabile pass-through "custom", dove sul server crei un MAC o altro hash con chiave su prodotto, stato, prezzo, valuta e IP dell'utente.

Questi sono quindi incorporati in Custom. Sul lato ricevitore, convalidi il MAC prima di considerare valido il pagamento.

Anche se manomettono il prezzo, ad esempio, il MAC risultante non verrebbe convalidato e sapete che il pagamento è stato manomesso. In questo modo potresti eseguire un rimborso automatico oppure puoi convalidare i valori più duramente, ad esempio cercare il prezzo nel database e accertarti che tutto corrisponda.

    
risposta data 02.02.2017 - 08:28
fonte

Leggi altre domande sui tag