PHP MySQL Double представить с использованием двух сессий

0

У меня есть интернет-магазин, пользователь купит что-то. Когда пользователь посетит мою сеть, их данные будут временно сохраняться в переменной $ user в виде массива. Будет проверяться, когда пользователь что-то купит, если их баланс больше или равен вещи, которые они хотят купить, но проблема возникает, когда есть некоторые пользователи, которые пытаются использовать два браузера для покупки вещей в одно и то же время, их баланс просто срезается один раз (это должно быть дважды, так как они покупают его дважды, используя два браузера)

Я знаю, что могу просто обновить переменную $ user перед проверкой, но мне придется запустить другой запрос в MySQL, и есть много заказов...

Есть ли синтаксис SQL, который можно использовать для предотвращения такого рода атак? для проверки их баланса и проверки правильности

  • 1
    Нет. Вы должны сделать правильные проверки с сохраненными данными, если вы хотите правильный ответ
  • 0
    @RiggsFolly, так что нет никаких других способов, кроме обновления переменной до обработки заказа ... хорошо ... спасибо
Показать ещё 1 комментарий
Теги:

1 ответ

1
Лучший ответ

На основе вашей текущей настройки (т.е. С использованием переменной):

Кто-то, использующий два браузера на одном сайте, пытаясь использовать свой баланс, будет довольно редок, в большинстве случаев кто-то пытается играть в вашу систему.

Просто, наконец, проверьте их баланс в момент обработки заказа, и если это разрешено, в противном случае нет. Для тех, кто делает это случайно (что редко), они скоро поймут ошибку.

Альтернатива:

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

Я думаю, что лучшим способом было бы использовать некоторое быстрое централизованное постоянное хранилище, такое как Redis (довольно легко изучить, по сути, это массив, хранящийся в памяти). Затем вы можете сохранить свое имя пользователя (или независимо от его уникальных идентификаторов), и хотя у них могут быть разные ключи в двух браузерах, будет общий уникальный идентификатор, и вы можете обновить свое кредитное значение на обеих (всех) сеансах, выполнив поиск уникальных Я БЫ.

Тогда любой браузер, к которому пользователь входил в систему, будет обновляться так же, как и другие браузеры.

Может быть, лучшая идея:
Если ваше приложение не нуждается в этом, не позволяйте людям входить в разные браузеры/устройства. Когда они пытаются войти в систему, укажите "уже вошли в систему в другом месте, хотите зарегистрировать его и войти в систему здесь". так далее

  • 0
    Последний звучит хорошо, спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню