2010-07-25 3 views
35

Я хочу, чтобы мои клиенты могли вводить данные своей кредитной карты, чтобы я мог их взимать каждый месяц.Сохранение информации о кредитной карте в базе данных MySQL?

Интересно, как сохранить эту информацию?

Следует ли сохранить его в базе данных MySQL («пользовательская» таблица) или эта информация слишком чувствительна и ее необходимо хранить в другом месте?

У меня нет опыта в этом, и я был бы рад, если бы кто-нибудь посоветует мне, как это сделать.

Спасибо.

+18

В зависимости от законов, которые применяются к тому месту, где вы управляете своим бизнесом, оно может быть * незаконным * для хранения номеров кредитных карт таким образом. Будьте осторожны, поговорите с вашим банком и/или юридическим представительством. –

+0

это законно? в большинстве случаев мы используем Paypal и ccaven для онлайн-транзакций. если вы сохранили информацию о кредитной карте, для которой вам требуется гораздо больше безопасности. – 2010-07-25 14:40:21

+1

Не надо. (Мое мнение как программист и как покупатель.) –

ответ

73

Как уже упоминалось выше, не храните информацию о кредитной карте в базе данных. Это рецепт неприятностей. Это сделает вас очень привлекательной целью для хакеров и, если они будут успешны в их получении, прекратит ваш бизнес и потенциально разрушит вашу жизнь, а также жизнь тех, чьи номера кредитных карт украдены.

Сказав, что здесь три вещи, чтобы рассмотреть следующие вопросы:

1) Лучше всего использовать шлюз процессора оплаты/оплату, который предлагает повторяющийся биллинг. Примером этого является услуга Authorize.Net's Automated Recurring Billing. После того, как вы настроите подписку, они автоматически будут автоматически выставлять счет за каждый месяц для вас автоматически и сообщать о результатах транзакции. Это экономит вам массу работы и освобождает вас от ответственности за хранение информации о кредитной карте.

2) Если у вас есть номера кредитных карт магазина, вы должны следовать PCI guidelines. Эти рекомендации устанавливаются отраслью платежных карт и определяют, что вы можете и чего не можете сделать. Он также определяет, как должна храниться информация о кредитной карте. Вам нужно будет зашифровать номера кредитных карт, и вы должны, но не обязаны шифровать связанную информацию (срок действия и т. Д.). Вам также потребуется обеспечить безопасность вашего веб-сервера и сети. Несоблюдение требований PCI приведет к потере вашей учетной записи продавца и тому, что навсегда останется реальная торговая учетная запись. Это ограничило бы использование сторонних процессоров, которые менее гибки. Имейте в виду, что рекомендации PCI - это хорошее начало, но вряд ли «как», когда дело касается онлайн-безопасности. Ваша цель - превысить рекомендацию (по большому счету).

3) Законы государств заменяют соответствие PCI. Если у вас есть нарушение, и номера кредитных карт украдены, вы рискуете привлечь к уголовной ответственности. Законы варьируются от штата к штату и постоянно находятся в движении, поскольку законодатели только начинают осознавать, насколько серьезным является этот вопрос.

Что касается шифрования, убедитесь, что вы прочитали, какие алгоритмы шифрования являются безопасными и еще не были сломаны. Blowfish - хорошее начало, и если вы используете PHP, рекомендуется использовать mcrypt library (example).

+0

Где лучше всего найти местные законы? –

+0

Очень полезная информация Джон. –

+1

У Square.com есть опрятный API. Они будут хранить информацию о карте в соответствии с PCI-совместимым способом. – AjaxLeung

15

Самый безопасный способ заключается в НЕ магазин информация о кредитной карте на вашей системе, но пусть 3 й платеж сторона провайдер сделает это за вас.

+0

как? который? мог бы дать мне дополнительную информацию –

+0

Таким образом, все юридические проблемы будут с третьей стороной. –

+1

+1 - если ваш клиент не совместим с PCI, www.pcicomplianceguide.org/pcifaqs.php, тогда не делайте этого. Вы могли бы заставить вас и вашего клиента попасть в мир боли. Используйте обработчик платежей, например PayPal (но их сборы являются возмутительными), GoogleCart, Authorize.net – gnome

6

Не требуется, чтобы вы использовали сторонний поставщик платежей, например PayPal, и т. Д. - но вы должны быть PCI compliant, если вы собираетесь хранить информацию о платежной карте. Прочитайте эту статью о BC Ferries, who face substantial fines for not keeping up to date with PCI compliance, чтобы понять, насколько серьезно она совместима с PCI.

Мой нынешний работодатель выполняет PCI-совместимость - это не тривиальный процесс и требует от персонала аудита. Исполнение зависит от законодательства страны и штата/провинции. Канада IIRC требует, чтобы вы были сертифицированы PCI в комитете PCI, в то время как некоторые штаты в США разрешают компаниям, проводящим проверку соответствия PCI, вместо комитета PCI.

Смежные вопросы