In genere le API di pagamento rientrano in 3 categorie:
- pagina di pagamento ospitata sul lato commerciante e inviata al commerciante
- pagina di pagamento ospitata sul lato commerciante e solo i dati delle carte inviati al fornitore di pagamenti (in genere tramite un SDK JavaScript)
- pagina di pagamento ospitata sul lato del fornitore di servizi di pagamento e inviata al fornitore di servizi di pagamento, il commerciante riceve una notifica dopo l'autorizzazione riuscita
Supponendo che il fornitore di servizi di pagamento non abbia rovinato tutto alla grande, si dovrebbe essere completamente fuori dallo scopo PCI DSS dalle opzioni 2 & 3.
Con l'opzione 2 non sei nello scope PCI DSS, non usi mai i dati della carta di credito, ma un token permanente o temporaneo assegnato alla transazione (come e4baf901-252b-4818-b826-7f89cad884db
) dall'SDK JavaScript del Processore di pagamento. Oltre a questo, il flusso di lavoro 3ds è esattamente come l'opzione 1, è solo che le tue richieste API hanno un pan_token
e non un pan
attributo. Vedi API dei campi ospitati su Braintree come esempio link
Con l'opzione 3 non sei in ambito PCI DSS, non fai nulla, devi solo reindirizzare il tuo client al provider di pagamento o aprire la pagina del provider di pagamento in un iframe o qualcosa del genere, ecco un esempio di questo tipo di API: link
Con l'opzione 1
Questa è una storia diversa, sì, si è in ambito PCI DSS, sì è necessario disporre di un certificato valido, a seconda della regione eseguire test PEN, avere un'organizzazione protetta e tutte le altre "cose cattive", politiche password, saltare host per connessione, rete protetta (e preferibilmente segmentata), assicurarsi che i registri non mostrino nulla, "neghi tutto", configurazioni di rete, controlli annuali ecc ecc ecc.
Se segui questa strada (e davvero non capisco perché dovresti, per favore, non farlo) almeno puoi evitare di avere un HSM e preoccuparti delle chiavi di crittografia, ecc., il che significa che non devi memorizzare i dati PCI DSS su un disco rigido.
In genere, la soluzione più semplice per evitarlo è archiviare i dati della carta di credito in memcache con una politica di scadenza di 1 ora o meno (15 minuti per tutte le implementazioni che ho fatto finora). Il trucco è di non scriverlo sul disco (è per questo che non vengono ridisegnati nella maggior parte delle implementazioni, ad esempio), ma un archivio di memoria come memcache è un gioco leale. Assicurati che le chiavi di accesso siano qualcosa di grande e sicuro, come un uuid (cioè e4baf901-252b-4818-b826-7f89cad884db
).
Non è sempre stato così in pratica ...
Storicamente, le società di pagamento sono state molto scarse per quanto riguarda la conformità PCI DSS dei commercianti, l'unica differenza pratica tra "database pieno di PAN" e "nessun PAN che abbia mai toccato il sistema" era "quante domande ha il questionario di autovalutazione" (SAQ PCI DSS per i commercianti).
Solo in casi molto particolari, quando un commerciante è stato identificato come punto vendita comune per le carte rubate, il commerciante è stato costretto, molto molto riluttante e con molta "comprensione" da parte delle società delle carte di credito a sottoporsi alla conformità PCI DSS lvl2 / lvl1 revisione contabile.
Tuttavia sta cambiando a causa di una serie di violazioni, e almeno in alcune regioni (come SEE Europe), le società di pagamento stanno ora insistendo su una migrazione dall'opzione 1 a tutti i commercianti che non dispongono di un PCI DSS completo certificato di conformità (non solo un esercizio di marcatura "X" in un questionario SAQ).