Beste praktijken om creditcardgegevens op te slaan in de database

In mijn land zijn online betalingen niet iets ouds, vorig jaar zag ik voor het eerst een webapplicatie betalingen rechtstreeks naar een lokale bankrekening overboeken.

Dus ik ben een beginner die een webbetaalsysteem codeert.

Mijn vraag is, wat zijn de beste praktijken om creditcardgegevens op te slaan in de database…

Ik heb veel ideeën: het versleutelen van de creditcard, beperking van de databasebeveiliging, enz.

Wat heb je gedaan?


Antwoord 1, autoriteit 100%

DOE HET NIET

Er zijn gewoon veel te veel risico’s aan verbonden en u zult doorgaans extern moeten worden gecontroleerd om ervoor te zorgen dat u voldoet aan alle relevante lokale wetten en beveiligingspraktijken.

Er zijn veel externe bedrijven die het voor u doen en die al de nodige moeite hebben gedaan om ervoor te zorgen dat hun systeem veilig is, dat ze voldoen aan de lokale wetten, enzovoort. Een voorbeeld in de VS dat ik in het verleden heb gebruikt is authorize.net. Sommige banken hebben ook systemen waarop u kunt aansluiten om creditcardgegevens op te slaan en betalingen te verwerken.

Ik realiseer me dat het land waar je je bevindt misschien niet zo strikte wetten heeft als de VS, maar naar mijn mening is dat geen excuus om je eigen wetten te maken. Als je te maken hebt met andermans geld, is het risico gewoon te groot om te rechtvaardigen.


Antwoord 2, autoriteit 44%

Gebruik in 2020 Stripe en sla zelf geen betalingsgegevens op.

HISTORISCH ANTWOORD:

Hiervoor raad ik een uitgebreide, gelaagde aanpak aan.

Ten eerste zou het opslaan van creditcardgegevens een optie moeten zijn.

Ten tweede moeten de gegevens veilig worden opgeslagen, met behulp van een sterke vorm van codering. Ik raad AES aan met een 256-bits sleutelgrootte. Zorg ervoor dat u bij het kiezen van uw sleutel de volledige sleutelruimte gebruikt (het is een beginnersfout om gewoon een willekeurig gegenereerde alfanumerieke tekenreeks als sleutel te gebruiken).

Ten derde moet de AES-sleutel goed zijn beveiligd. Sluit de waarde niet in uw code in. Als u Windows gebruikt, overweeg dan om DPAPI te gebruiken.

Ten vierde wilt u databasemachtigingen instellen zodat toepassingen en computers toegang hebben op een ‘need-to-know’-basis.

Ten vijfde, beveilig de verbindingsreeks met uw database.

Ten zesde: zorg ervoor dat elke applicatie die toegang heeft tot de creditcardgegevens, deze goed beveiligt.


Antwoord 3, autoriteit 24%

Volg minimaal de PA DSS (Payment Appliction Data Security Standard). Meer info vind je hier:

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

Het zou ook verstandig zijn om te kijken naar PCI DSS, die hier te vinden is:

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


Antwoord 4, autoriteit 2%

U dient te voorkomen dat u creditcardgegevens opslaat vanwege de risico’s voor u en klanten als u dit doet.


Antwoord 5

Versleutelen versleutelen versleutelen. Ontsleutel niet als het niet absoluut nodig is – ontsleutel niet om de laatste 4 cijfers weer te geven. Ontsleutel niet om de gebruiker te vertellen wat zijn kaart was.

Als je kunt, bewaar de versleutelde kaartnummers zelfs niet op dezelfde fysieke server als de rest van de gebruikersinformatie.


Antwoord 6

Authorize.netheeft een Customer Information Manager APIwaarmee u klantinformatie in hun systeem kunt opslaan. Het kost $ 20 per maand. als een add-on voor uw account.


Antwoord 7

Ik stel voor dat je kaartnummers versleutelt met een sterk algoritme (vergelijkbare AES) en een lange geheime sleutel.

Bewaar uw geheime sleutel vervolgens op een veilige plaats, vergelijkbaar met een externe harde of optische schijf.
Als je een geheime sleutel nodig hebt, gebruik dan een externe harde schijf.

Als je een gedeelde host gebruikt, moet je je geheime sleutel op een extern apparaat opslaan.

Strik uw database

  1. Definieer strikte gebruikers voor uw database
  2. Root-gebruiker van uw database verwijderen als het niet nodig is.

Other episodes