2010-07-25 30 views
35

Quiero permitir a mis usuarios del cliente ingresar la información de su tarjeta de crédito para que pueda cargarlos todos los meses.¿Guardar información de tarjeta de crédito en la base de datos MySQL?

Me pregunto cómo se debe guardar esta información?

¿Debería guardarse en la base de datos MySQL (tabla "usuario") o este tipo de información es demasiado sensible y debe almacenarse en otro lugar?

No tengo experiencia en esto y me gustaría que alguien me aconsejara cómo lograrlo.

Gracias.

+18

Dependiendo de las leyes que se aplican al lugar donde opera su negocio, incluso puede ser * ilegal * almacenar números de tarjetas de crédito de esta manera. Tenga cuidado, hable con su banco y/o representación legal. –

+0

¿es legal? en la mayoría de los casos usamos Paypal y ccavenue para transacciones en línea. si almacenó información de la tarjeta de crédito, necesita mucha más seguridad. –

+1

No. (Mi opinión como programador y como comprador.) –

Respuesta

73

Como se mencionó anteriormente, no almacene la información de la tarjeta de crédito en una base de datos. Es una receta para problemas. Hacerlo te convertirá en un blanco muy atractivo para los hackers y, si tienen éxito en recuperarlos, terminará tu negocio y potencialmente arruinará tu vida y la de aquellos cuyos números de tarjeta de crédito son robados.

Dicho esto aquí hay tres cosas a considerar:

1) La mejor opción es utilizar una puerta de enlace procesador de pago/pago que ofrece facturación recurrente. Un ejemplo de esto es el servicio Authorize.Net's Automated Recurring Billing. Una vez que configure la suscripción, automáticamente le facturará al usuario todos los meses por usted automáticamente y le informará los resultados de la transacción. Le ahorra mucho trabajo y le exime de la responsabilidad de almacenar la información de la tarjeta de crédito.

2) Si almacena números de tarjeta de crédito de la tienda, debe seguir PCI guidelines. Estas pautas son establecidas por la industria de tarjetas de pago y definen lo que puede y no puede hacer. También define cómo se debe almacenar la información de la tarjeta de crédito. Deberá encriptar los números de la tarjeta de crédito y debe, aunque no es obligatorio, encriptar la información relacionada (fecha de vencimiento, etc.). También será necesario para garantizar que su servidor web y su red sean seguros. Si no cumple con el cumplimiento de PCI, perderá su cuenta de comerciante y se le prohibirá tener una verdadera cuenta de comerciante para siempre. Eso limitaría el uso de procesadores de terceros que son menos flexibles. Tenga en cuenta que las pautas PCI son un buen comienzo, pero difícilmente un "cómo hacerlo" cuando se trata de seguridad en línea. Su objetivo sería exceder la recomendación (por mucho).

3) Las leyes estatales reemplazan el cumplimiento de PCI. Si sufres una violación y te roban números de tarjetas de crédito, correrás el riesgo de ser procesado penalmente. Las leyes varían de estado a estado y están en constante cambio ya que los legisladores apenas comienzan a darse cuenta de cuán serio es este asunto.

En lo que respecta al cifrado, asegúrese de leer qué algoritmos de cifrado son seguros y aún no se han roto. Blowfish es un buen comienzo y si usa PHP se recomienda mcrypt library (example).

+0

¿Dónde está el mejor lugar para encontrar las leyes locales? –

+0

Información muy útil John. –

+1

Square.com tiene una buena API. Almacenarán la información de la tarjeta de forma compatible con PCI para usted. – AjaxLeung

15

La forma más segura es NO almacenar la información de tarjeta de crédito en su sistema, pero deje que un proveedor de pago de terceros 3 rd lo haga por usted.

+0

¿cómo? ¿cuáles? ¿Podrían darme más información? –

+0

De esa forma todos los problemas legales serán con la tercera parte. –

+1

+1 - a menos que su cliente sea compatible con PCI, www.pcicomplianceguide.org/pcifaqs.php, entonces no lo haga. Podrías estar metiéndote a ti y a tu cliente en un mundo de dolor. Utilice un procesador de pagos como PayPal (pero sus tarifas son escandalosas), GoogleCart, Authorize.net – gnome

6

No es necesario que utilice un proveedor de pago externo como PayPal, etc., pero debe ser PCI compliant si va a almacenar información de la tarjeta de pago. Lea este artículo sobre BC Ferries, who face substantial fines for not keeping up to date with PCI compliance para comprender cuán serio es cumplir con PCI.

Mi actual empleador está pasando por el cumplimiento de PCI, no es un proceso trivial y requiere personal para la auditoría. La aplicación depende de las leyes del país y del estado/provincia: Canadá IIRC requiere que tenga la certificación PCI de un comité de empleados de PCI, mientras que algunos estados de los EE. UU. Permiten que las empresas de auditoría de cumplimiento PCI funcionen en lugar del comité de PCI.

Cuestiones relacionadas