Non memorizzare mai i dettagli della carta di credito: numero, ccv, exp, ecc. Raramente c'è una situazione in cui ne hai bisogno. Invece basta memorizzare il codice di risposta e il numero di riferimento dal gateway. Questi sono sufficienti per emettere rimborsi da quando necessario.
Ok, dai tuoi commenti stai usando PayPal.
Paypal ha diversi gateway diversi, assumerò che si tratti di PayFlow Pro.
Innanzitutto, come indicato sopra, NON memorizzare le informazioni della carta di credito a livello locale. Accetta semplicemente il post dall'utente e invia immediatamente i dati utilizzando l'API di PayPal. Una volta ottenuta la risposta, mantieni l'ID della transazione e memorizzalo.
In nessun caso dovresti "registrare" i dati della carta di credito. I log possono essere violati e tu non vuoi quella responsabilità.
Nel caso in cui tu stia consentendo all'utente finale di impostarli su pagamenti ricorrenti, continua a NON CONSERVARE LE INFO CC. L'API paypal può gestire questo e ti fornirà gli ID delle transazioni pertinenti da conservare per riferimento futuro.
Successivamente, esamina la documentazione di PayPal per le loro migliori pratiche.
Infine, non conservare il numero della carta di credito. Neanche parte di esso. NON è necessario il pulsante "ricorda i miei dettagli di pagamento". Quelle sono una pessima idea e gridano "bersaglio" agli hacker.
Ok, ora cosa dovresti fare? Innanzitutto, leggi la documentazione sulla conformità PCI. In secondo luogo, leggi la letteratura OWASP. In terzo luogo, crea il tuo sito e assicuralo. In quarto luogo, assumere una società di terze parti per fare un controllo di sicurezza. In quinto luogo, risolvi qualunque cosa essi trovino e fagli fare un altro audit. Ripeti finché il tuo sito non è considerato "sicuro" da qualcuno diverso da te. Preferibilmente qualcuno con esperienza facendo audit. Non sarà economico. Se lo è, allora hai assunto la compagnia sbagliata.
In corso, tieniti aggiornato con Windows e gli aggiornamenti del gateway. Se paypal invia una nuova API, controllala, aggiorna il tuo codice e distribuiscilo.
Ogni volta che MS invia un aggiornamento, applicalo. Non aspettare, fallo e basta Se qualcosa si rompe, aggiustalo allora. Più o meno quando MS o un altro fornitore rilasciano una patch, quasi sempre viene sfruttato un exploit entro un giorno o due per quella patch. A volte l'exploit era già là fuori.