Подтвердить что ты не робот

Сохранение информации о кредитной карте в базе данных MySQL?

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

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

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

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

Спасибо.

4b9b3361

Ответ 1

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

Сказав это, рассмотрим три вещи:

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

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

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

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

Ответ 2

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

Ответ 3

Не требуется, чтобы вы использовали стороннего поставщика платежей, например PayPal, и т.д. - но вам нужно совместимый с PCI, если вы собираюсь хранить информацию о платежной карте. Прочитайте эту статью о BC Ferries, которые сталкиваются с существенными штрафами за то, что не соблюдали требования PCI PCI, чтобы понять, насколько серьезно это будет PCI-совместимый.

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