В моей стране онлайн-платежи не являются старой вещью, в первый раз, когда я видел, что веб-приложение брать платежи непосредственно учетной записи местного банка было в прошлом году.
Так, я - новичок, кодирующий веб-платежную систему.
Мой вопрос, что лучшие практики должны хранить информацию кредитной карты в базу данных...
У меня есть много идей: шифруя кредитную карту, ограничение безопасности базы данных, и т.д.
Что Вы сделали?
НЕ ДЕЛАЙТЕ ЭТО
Риск слишком велик, и вам, как правило, придется прошел внешний аудит, чтобы убедиться, что вы соблюдаете все соответствующие местные законы и правила безопасности.
Есть много сторонних компаний, которые делают это за вас, которые уже прошли через все проблемы, чтобы убедиться, что их система безопасна, соответствует ли они местным законам и так далее. В прошлом я использовал пример из США: authorize.net . В некоторых банках также есть системы, к которым вы можете подключиться, чтобы хранить данные кредитных карт и обрабатывать платежи.
Я понимаю, что в стране, в которой вы находитесь, возможно, не такие строгие законы, как в США, но, на мой взгляд, это не оправдание для принятия ваших собственных. Когда вы имеете дело с деньгами других людей, риск слишком велик, чтобы его оправдать.
Шифровать шифровать шифровать. Не расшифровывайте, если вам это не нужно - не расшифровывайте, чтобы показать последние 4 цифры. Не расшифровывайте, чтобы сказать пользователю, какой была его карта.
На самом деле, если вы можете, даже не храните зашифрованные номера карт на одном физическом сервере с остальной информацией пользователя.
Для этого я рекомендую комплексный многоуровневый подход.
Во-первых, необходимо сохранить информацию о кредитной карте.
Во-вторых, данные должны храниться надежно с использованием надежной формы шифрования. Я рекомендую AES с размером ключа 256 бит. При выборе ключа убедитесь, что вы используете все пространство ключей (это ошибка новичка - просто использовать случайно сгенерированную строку буквенно-цифровых символов в качестве ключа).
В-третьих, ключ AES должен быть надежно защищен. Не вставляйте значение в свой код. Если вы используете окна, рассмотрите возможность использования DPAPI.
В-четвертых, вы захотите настроить разрешения базы данных, чтобы приложения и компьютеры имели доступ на основе служебной информации.
В-пятых, закрепите строку подключения к своей базе данных.
В-шестых, убедитесь, что любое приложение, которое будет иметь доступ к данным кредитной карты, должным образом защитит их.
В miniumum соблюдайте PA DSS (Стандарт безопасности данных платежных приложений). Более подробную информацию можно найти здесь:
https://www.pcisecuritystandards.org/security_standards/pa_dss.shtml
Также было бы разумно посмотреть на PCI DSS, который можно найти здесь:
https: //www.pcisecuritystandards.org/security_standards/pci_dss.shtml
Вам следует избегать хранения любой информации о кредитных картах из-за риска для вас и для клиентов при этом.