My payment processor supports recurring payments via "credit card tokens".
Ciò significa che quando qualcuno effettua un acquisto, tu o il cliente invierete la loro carta di credito al vostro processore e il processore vi restituirà un token. A differenza di una carta di credito, quel token non può essere preso da qualche altra parte e utilizzato; è valido solo tra te e il tuo processore per rappresentare questo unico cliente. Non si conserva la propria carta di credito; ti dimentichi tutto e usa invece il token.
Il processore trattiene il numero della carta di credito, e ogni volta che dici "Carica questo token", usa il numero della carta per effettuare l'addebito.
Il vantaggio di questo sistema è che non sei responsabile della protezione dei dati PAN ("Numero account primario"), che semplifica i tuoi problemi di sicurezza e controllo. Se chiedi ai tuoi clienti di consegnare i numeri delle tessere direttamente al processore, senza prima affidarli a te, puoi ridurre notevolmente l'ambito e gli obblighi PCI.
What's the best way to store these tokens?
Di solito, in un database. Non richiedono lo stesso livello di crittografia e protezione che dovresti utilizzare per i dati PAN, se è quello che ti preoccupa.
What if my system is compromised and someone get their hands on the tokens?
Se qualcuno ruba l'intero database di token, non può usarli per fare nulla. Non vanno bene per niente tranne che nel contesto di tu che li manda al tuo processore usando le tue credenziali, che verranno notate molto rapidamente quando i clienti vedono che hanno una doppia fatturazione. (E l'unico modo per monetizzare questo è se il tuo sito "di appartenenza" spedisce qualcosa di prezioso, come i casi di vino, ai clienti, e l'attaccante potrebbe intercettare la spedizione).