Корзина должна находиться не у пользователя на устройстве, а на сервере.
Можете хранить её в БД или в сессии пользователя, оба варианта значительно лучше, чем куки.
Лучше всего хранить корзину в БД и привязывать её уникальному идентификатору пользователя, который будет сохранен ему в куки, либо к идентификатору аккаунта этого пользователя, если он авторизован на сайте.
Перед добавлением товара в корзину нужно производить проверку на существование товара и на его доступность для пользователя.
Все хорошо - добавили товар в корзину, плохо - уведомили об этом.
Передавать на backend название товара и его размер - бред, передавать нужно идентификаторы и с ними работать.
Кнопку «В корзину» лучше всего запихнуть в форму, которая будет содержать всю необходимую информацию о товаре. В этом случае не придется бегать по дереву DOM, чтобы достать нужные значение. Нужна асинхронность - слушаем событие формы submit и отправляем данные на сервер самостоятельно.
Сообщение от nastya97core
|
3. Так как заказ собирается из текста и из кук, то на сколько уязвимо это? Может ли злоумышленник изменить название товара так, чтобы получить доступ к БД и к моим API ключам. И если да, то как мне себя обезопасить?
|
Зависит от backend'а. Читайте про
SQL injection.