#mysql #e-commerce #web
#mysql #электронная коммерция #веб
Вопрос:
Я создаю приложение для электронной коммерции для интернет-магазина и планирую создать кредитную систему, чтобы клиенты могли зарабатывать кредиты на покупку товаров.
С обработкой кредитов у меня нет проблем, но меня беспокоит идея хранения значений с фактической денежной стоимостью в моей базе данных MySQL.
В настоящее время я планирую создать таблицу для кредитов с внешним ключом, который связывает ее с пользователем, чтобы я мог вычислить количество кредитов пользователя с помощью одного СОЕДИНЕНИЯ.
Я просто хотел спросить, есть ли вещи, с которыми я должен быть осторожен, чтобы не оставлять уязвимостей, которых можно было бы избежать.
Спасибо!
Комментарии:
1. храните денежные значения с десятичной дробью (10,2), если вы собираетесь работать с десятичной дробью, вы также можете использовать 3 или 4 места после запятой.. Тип данных работает идеально.
Ответ №1:
Во-первых, как упоминает Фернандо в комментариях, используйте decimal
для хранения значения.
Имейте журналы аудита, таким образом, вы можете вернуться назад и определить, почему значение является тем значением, которое оно есть.
Ваша самая большая проблема будет заключаться в обеспечении безопасности вашей системы, а не в том, как она хранится (хотя это, очевидно, также относится к безопасности). Убедитесь, что приложение протестировано, возможно, для начала с помощью соответствующего инструмента для тестирования пера. Убедитесь, что компьютер продукта заблокирован и проверен.
Само собой разумеется, что надежные и проверенные резервные копии чрезвычайно важны, когда имеешь дело с чем-то ценным.
Я также предполагаю, что вы не обрабатываете транзакции по кредитным картам напрямую? На всякий случай я настоятельно рекомендую вам пересмотреть и использовать стороннюю компанию, потому что многое может пойти не так для вас (или ваших клиентов). Кроме того, вы не хотите иметь дело с PCI-DSS.
Комментарии:
1. Система кредитов является отдельной сущностью и используется для того, чтобы мы могли вознаграждать клиентов. Я собираюсь обрабатывать транзакции по кредитным картам с использованием стороннего продавца, потому что, как вы сказали, я не хочу иметь дело с соблюдением PCI. Я предполагал, что большая часть безопасности такой системы будет зависеть от безопасности самой базы данных, но я буду размещать ее на обычном VPS, и на самом деле мой единственный вариант — надеяться, что мой провайдер обеспечит мне безопасность.
2. Мне просто интересно, есть ли лучшие практики, о которых я не знал, при хранении записей с денежной стоимостью.