Показать сообщение отдельно
  #2 (permalink)  
Старый 12.05.2021, 17:08
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,790

Корзина должна находиться не у пользователя на устройстве, а на сервере.
Можете хранить её в БД или в сессии пользователя, оба варианта значительно лучше, чем куки.

Лучше всего хранить корзину в БД и привязывать её уникальному идентификатору пользователя, который будет сохранен ему в куки, либо к идентификатору аккаунта этого пользователя, если он авторизован на сайте.

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

Передавать на backend название товара и его размер - бред, передавать нужно идентификаторы и с ними работать.

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

Сообщение от nastya97core
3. Так как заказ собирается из текста и из кук, то на сколько уязвимо это? Может ли злоумышленник изменить название товара так, чтобы получить доступ к БД и к моим API ключам. И если да, то как мне себя обезопасить?
Зависит от backend'а. Читайте про SQL injection.

Последний раз редактировалось Nexus, 12.05.2021 в 17:11.
Ответить с цитированием