Meilleures pratiques pour stocker les informations de carte de crédit dans la base de données

Dans mon pays, les paiements en ligne ne sont pas une vieille chose, la première fois que j'ai vu une application web prendre des paiements directement sur un compte bancaire local était l'année dernière.

Donc, Im un système de paiement Web de codage débutant.

Ma question Est, quelles sont les meilleures pratiques pour stocker des informations de carte de crédit dans la base de données...

J'ai beaucoup d'idées: chiffrer la carte de crédit, la restriction de sécurité de la base de données, etc.

Qu'avez-vous fait?

40
demandé sur Garis M Suero 2010-06-09 03:48:43

7 réponses

NE LE FAITES PAS

Il y a tout simplement beaucoup trop de risques, et vous devrez généralement faire l'objet d'un audit externe pour vous assurer que vous vous conformez à toutes les lois et pratiques de sécurité locales pertinentes.

Il y a beaucoup de sociétés tierces qui le font pour vous qui ont déjà eu tous les problèmes pour s'assurer que leur système est sécurisé, qu'elles se conforment aux lois locales et ainsi de suite. Un exemple aux États-Unis que j'ai utilisé dans le passé est authorize.net . Certaines banques ont également des systèmes que vous pouvez brancher pour stocker les données de carte de crédit et traiter les paiements.

Je me rends compte que le pays dans lequel vous êtes n'a peut - être pas des lois aussi strictes que les États-Unis, mais à mon avis, ce n'est pas une excuse pour rouler les vôtres. Lorsque vous avez affaire à l'argent des autres, le risque est tout simplement trop pour justifier.

80
répondu Dean Harding 2010-06-08 23:59:10

Pour cela, je recommande une approche globale et en couches.

Tout d'abord, le stockage des informations de carte de crédit devrait être une option.

Deuxièmement, les données doivent être stockées en toute sécurité, en utilisant une forme forte de cryptage. Je recommande AES avec une taille de clé de 256 bits. Assurez-vous que lors du choix de votre clé, vous utilisez l'ensemble de l'espace de clés (c'est une erreur de débutant d'utiliser simplement une chaîne alphanumericsymbol générée aléatoirement comme clé).

Troisièmement, la clé AES doit être correctement sécurisée. Ne pas intégrer la valeur à l'intérieur de votre code. Si vous utilisez windows, envisagez D'utiliser DPAPI.

Quatrièmement, vous voudrez configurer les autorisations de base de données afin que les applications et les ordinateurs aient accès sur une base de besoin.

Cinquièmement, sécurisez la chaîne de connexion à votre base de données.

Sixièmement, assurez-vous que toute application qui aura accès aux données de la carte de crédit, sera correctement sécurisé.

32
répondu Alan 2010-06-09 08:22:37

Chez miniumum, suivez le PA DSS (Payment Appliction Data Security Standard). Plus d'informations peuvent être trouvées ici:

Https://www.pcisecuritystandards.org/security_standards/pa_dss.shtml

Aussi, il serait sage de regarder PCI DSS, qui pourrait être trouvé ici:

Https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml

20
répondu Waleed Al-Balooshi 2010-06-08 23:57:58

Vous devriez éviter de stocker toute information de carte de crédit en raison des risques pour vous et pour les clients de le faire.

2
répondu Dan from FastSpring E-Commerce 2012-01-01 19:03:28

Chiffrer chiffrer chiffrer. Ne pas déchiffrer si vous n'avez pas absolument à-ne pas déchiffrer pour afficher les 4 derniers chiffres. Ne décryptez pas pour dire à l'utilisateur quelle était leur carte.

En fait, si vous le pouvez, ne gardez même pas les numéros de carte cryptés dans le même serveur physique que le reste des informations utilisateur.

1
répondu dplass 2010-06-08 23:54:24

Je vous suggère de crypter les numéros de carte avec un algorithme fort (AES similaire) et une longue clé secrète.

Ensuite, gardez votre clé secrète dans un endroit sécurisé similaire à un disque dur ou optique externe. Lorsque vous avez besoin de clé secrète, utilisez dur externe.

Si vous utilisez un hôte partagé, vous devez stocker votre clé secrète dans un périphérique externe.

Strict votre base de données

  1. définissez des utilisateurs stricts pour votre base de données
  2. Supprimer l'utilisateur root de votre base de données si ce n'est pas le cas nécessaire.
-3
répondu Mahmoud 2016-04-19 15:48:45