web-dev-qa-db-fra.com

Sauvegarder les informations de carte de crédit dans la base de données MySQL?

Je souhaite autoriser les utilisateurs de mes clients à saisir leurs informations de carte de crédit afin de pouvoir les débiter chaque mois.

Je me demande comment on devrait sauvegarder ces informations?

Doit-il être enregistré dans la base de données MySQL (table "utilisateur") ou ce type d'informations est-il trop sensible et doit-il être stocké ailleurs?

Je n'ai aucune expérience de cela et serais heureux si quelqu'un pouvait me conseiller sur la façon d'y parvenir.

Merci.

37
never_had_a_name

Comme mentionné ci-dessus, ne stockez pas les informations de carte de crédit dans une base de données. C'est une recette pour des ennuis. Cela vous fera une cible très attrayante pour les pirates et, s'ils réussissent à les récupérer, mettre fin à votre entreprise et potentiellement ruiner votre vie ainsi que la vie de ceux dont les numéros de carte de crédit sont volés.

Cela dit, voici trois choses à considérer:

1) Le mieux est d'utiliser un processeur de paiement/passerelle de paiement qui propose une facturation récurrente. Un exemple de ceci est le service Authorize.Net's Automated Recurrent Billing . Une fois que vous avez configuré l'abonnement, ils factureront automatiquement l'utilisateur automatiquement chaque mois pour vous et vous informeront des résultats de la transaction. Il vous permet d'économiser une tonne de travail et vous décharge de la responsabilité du stockage des informations de carte de crédit.

2) Si vous stockez des numéros de carte de crédit en magasin, vous devez suivre directives PCI . Ces directives sont définies par l'industrie des cartes de paiement et définissent ce que vous pouvez et ne pouvez pas faire. Il définit également comment les informations de carte de crédit doivent être stockées. Vous devrez crypter les numéros de carte de crédit et vous devriez, mais n'y êtes pas obligé, crypter les informations connexes (date d'expiration, etc.). Vous devrez également vous assurer que votre serveur Web et votre réseau sont sécurisés. Ne pas respecter la conformité PCI entraînera la perte de votre compte marchand et l'interdiction d'avoir un vrai compte marchand pour toujours. Cela vous limiterait à utiliser des processeurs tiers qui sont moins flexibles. Gardez à l'esprit que les directives PCI sont un bon début mais pas un "mode d'emploi" en matière de sécurité en ligne. Votre objectif serait de dépasser la recommandation (de beaucoup).

3) Les lois spécifiques aux États et aux pays remplacent la conformité PCI. Si vous subissez une violation et que des numéros de carte de crédit sont volés, vous risquez des poursuites pénales. Les lois varient d'un État à l'autre et sont en constante évolution, car les législateurs commencent à peine à se rendre compte de la gravité d'une question.

En ce qui concerne le cryptage, assurez-vous de savoir quels algorithmes de cryptage sont sécurisés et n'ont pas encore été brisés. Blowfish est un bon début et si vous utilisez PHP le bibliothèque mcrypt est recommandé ( exemple ).

82
John Conde

Le moyen le plus sûr consiste à [~ # ~] et non [~ # ~] à stocker les informations de carte de crédit sur votre système, mais laissez un 3rd le fournisseur de paiement de partie le fait pour vous.

16
ZippyV

Il n'est pas nécessaire que vous utilisiez un fournisseur de paiement tiers comme Paypal, etc. - mais vous devez être conforme PCI si vous allez stocker des informations de carte de paiement. Lisez cet article sur BC Ferries, qui encourt des amendes substantielles pour ne pas être à jour avec la conformité PCI pour comprendre à quel point il est sérieux d'être conforme PCI.

Mon employeur actuel passe par la conformité PCI - ce n'est pas un processus trivial et nécessite du personnel pour l'audit. L'application dépend des lois des pays et des États/provinces - Canada IIRC exige que vous soyez certifié PCI par un comité employé par PCI, tandis que certains États américains autorisent les sociétés d'audit de conformité PCI à remplacer le comité PCI.

6
OMG Ponies