Могу ли я сохранить секретный код кредитной карты в базе данных? - PullRequest
13 голосов
/ 15 октября 2010

Мне нужно сохранить номера кредитных карт и секретные коды пользователей в базе данных в виде простого текста (очевидно, что за этим стоит согласие) для автоматической работы с сервера.

Есть ли проблемы?

Что мне нужно знать?

Ответы [ 5 ]

19 голосов
/ 15 октября 2010

PCI-DSS (Стандарт безопасности данных индустрии платежных карт) абсолютно запрещает сохранять данные карты на диске в виде простого текста.Кроме того, трехзначный код безопасности карты (4 цифры на Amex) не может быть сохранен после авторизации, и в идеале вы должны хранить его в памяти только до завершения авторизации.большинство первые шесть и последние четыре цифры в текстовом формате.Требования к распечатанным квитанциям различны, там вы можете печатать только последние четыре цифры.

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

В итоге.Даже не думай об этом!

18 голосов
/ 15 октября 2010

Большинство соглашений об обработке кредитных карт, которые я видел, не позволяют хранить код с обратной стороны карты.

Существуют и другие последствия для безопасности хранения номеров кредитных карт в виде простого текста, но хранение кода обычно специально запрещено вашим соглашением. Вам нужно будет прочитать свое, чтобы убедиться, что вы можете это сделать.

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

Если у вас нет веских причин хранить номер кредитной карты и у вас есть очень хорошая команда, работающая над безопасностью, я бы не рекомендовал хранить данные кредитной карты.

8 голосов
/ 15 октября 2010

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

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

5 голосов
/ 15 октября 2010

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

Во всех известных мне соглашениях о торговых счетах указано, что вы НЕ должны хранить CVV. Это из соображений безопасности.

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

Тебе это не нужно, как только ты проверил это в первый раз. Определенно не храните его.

Вы не можете хранить номера кредитных карт в виде простого текста.

2 голосов
/ 15 октября 2010

@Джефф, ты должен слушать.Если вы собираетесь обрабатывать кредитные карты, вы должны (я думаю, что должен, но IANAL) соблюдать Стандарт безопасности данных индустрии платежных карт .

...