PHP
Как хранить номер карты в базе данных?
Может их хешировать, зашифровывать или хранить в чистом виде? (Номер карты используется при дальнейших покупок)
как вариант создай 2 столбца
crd_hash - хранит начальную часть карты без последних 4 символов (её хешируем в несколько хешей и дехещируем в обработчике также можно сделать перестановку символов для хранения в бд)
crd_uid хранит последние 4 цифры карты
Пользователю выводит только тип платёжной системы mir visa mastercard и т.п
и номер карты в формате ***************2023
при таком раскладе утечка бд не будет критичной
crd_hash - хранит начальную часть карты без последних 4 символов (её хешируем в несколько хешей и дехещируем в обработчике также можно сделать перестановку символов для хранения в бд)
crd_uid хранит последние 4 цифры карты
Пользователю выводит только тип платёжной системы mir visa mastercard и т.п
и номер карты в формате ***************2023
при таком раскладе утечка бд не будет критичной
хэширование имеет смысл только для проверки, потому что это - одностороннее преобразование.
Шифрование внутри базы данных ничего не дает, потому что нужно ограничивать доступ к самой базе данных (чтобы посторонние физически не могли туда влезть). А если есть шифрование, значит, есть и ключ к этому шифру и он хранится не у держателя этой карты (потому что это не имеет смысла), а где-то на сервере, значит, может быть похищен вместе с базой данных.
За утечку пользовательских данных можно огрести кучу проблем, поэтому в реальном проекте подумайте, а оно Вам на самом деле нужно?
Шифрование внутри базы данных ничего не дает, потому что нужно ограничивать доступ к самой базе данных (чтобы посторонние физически не могли туда влезть). А если есть шифрование, значит, есть и ключ к этому шифру и он хранится не у держателя этой карты (потому что это не имеет смысла), а где-то на сервере, значит, может быть похищен вместе с базой данных.
За утечку пользовательских данных можно огрести кучу проблем, поэтому в реальном проекте подумайте, а оно Вам на самом деле нужно?
Алексей Головачев
Я сказал "(Номер карты используется при дальнейших покупок)" только для примера чтобы было проще понять, номер я делаю рефиральную систему и чтобы переводить деньги партнёрам мне нужно хранить их номера
Так же как всю важную инфу. В зашифрованном виде.
Просто так их хранить нельзя. Нужно для начала получить какие то сертификационные документы о том что платёжные системы доверяют тебе их хранить. Иначе можно нарваться на неприятности. То есть придётся соблюсти их требования по данному вопросу. Какие конкретно - это надо у них уточнять
Алексей Головачев
Запрещено хранить полные данные
Похожие вопросы
- Отправка текста в базу данных PHP + MySQL! Помогите ((
- вывод данных из базы данных по нажатию кнопки
- как сделать чтобы полученные из формы данные записывались в базу данных?
- Как узнать положение элемента в базе данных?
- При написании php кода для отправки записи в базу данных выходит ошибка
- Не вносятся данные в базу MYSQL, в чём ошибка?
- Как хранить информацию о пользователях в бд?
- Почему говорят про глобальный массив $GLOBALS в то же время данные передают через сессии?
- Создание карты игрового мира (Браузерная)
- Нужна помощь c запросами и базой данных, PHP, MySQL