Мы создали портал для пользователей, которые платят онлайн через наш веб-сайт.
Мы создали опцию для пользователя, чтобы проверить "флажок", чтобы сохранить их данные в своей учетной записи, чтобы они могли легко заплатить в следующий раз.
Каков наилучший способ сохранить данные кредитной карты в базе данных mySQL? Я хочу, чтобы это было безопасно, я не хочу просто сохранять их данные в поле как "XXXXXXXXXXXXXXXX".
Какой самый безопасный способ сохранить данные кредитной карты? У нас будет SSL на нашем сервере, когда сайт будет работать.
Привет
Вы никогда не должны хранить детали CC, кроме сильно замаскированного формата "XXXX XXXX XXXX 1234", и вам не разрешено хранить номера CVV.
То, что вы можете сохранить, - это идентификатор транзакции, конвертированный из вашего платежного процессора, из которого вы можете найти свою сохраненную копию номера CC. Это избавляет вас от проблемы обеспечения вашей системы достаточно, чтобы вы могли сохранить номер CC (что является огромным начинанием) и наложило бремя на служебные данные безопасности на процессорную головку.
SSL не имеет отношения к защите вашей базы данных, соединение SSL существует только в то время, когда транзакция HTTP открыта, а затем исчезла. Вы должны всегда иметь 100% -ную защиту на своем сервере и в своей базе данных.
Я бы посоветовал получить копию стандартов PCI, в которых очень подробно описываются требования к различным уровням кредита обработка/обработка карт.
Просмотрите требования pci, связанные с Mark B.
В одном из моих недавних контрактов я работал с государственным департаментом, хотя я не имел ничего общего с соблюдением pci, я знаю, что он стоит более 1 миллиона долларов. Вам, конечно, не нужно тратить столько. но воспринимайте это как предупреждение.
Если вы работаете на общей платформе, я могу только повторить то, что сказали другие, и сказать, что не храните ее для повторного использования. Фактически на общей платформе нецелесообразно собирать платежи вообще, независимо от хранения сведений о карте.
По крайней мере, вам нужна виртуальная машина, если не выделенное поле за брандмауэром, база данных должна быть на отдельном сервере, который является брандмауэром и используется только для базы данных.
Никогда не забывайте, что ваш хостинг-провайдер может получить доступ к коробке, один плохой сотрудник, и у вас проблемы. или, по крайней мере, ваши держатели карт, и если они смогут отследить его обратно к вам, и вы должны всегда признать нарушение, тогда у вас проблемы.
Если вам нужно. Затем храните все остальное, но каждый раз вводите пользователя в кредитную карту. не забывайте, что даты истечения срока действия меняются. поэтому вам нужно будет позволить пользователю обновить это так или иначе, так почему бы не получить все число снова.
Ваши клиенты, вероятно, будут смотреть на вас более любезно, если вы указали "Неформатированные данные карты"
DC
Если вы действительно должны хранить эту информацию, я думаю, что вы должны иметь что-то вроде encryption (mcrypt). но, честно говоря, я не эксперт по безопасности, и то, что я восхваляю, тоже может быть небезопасно!?!
ЕСЛИ ВЫ МОЖЕТЕ ИЗБЕЖАТЬ ХРАНЕНИЯ ТАКОЙ ИНФОРМАЦИИ НА ВАШЕМ СЕРВЕР, КОТОРУЮ ВЫ ДОЛЖНЫ. PERIOD! Как и кто-то еще, даже Jeff Atwood (автор Stackoverflow) советует вам не хранить такую информацию. Вы можете быть скомпрометированы, а затем эта информация будет доступна в Интернете. Как вы все равно делаете платежи? Разве вы не используете что-то вроде PayPal или что-то такое, что пользователи даже не должны вводить эту информацию в любом случае?