Как защитить данные, перед отправкой AJAX?

Написал приложение, которое позволяет пользователю купить билеты на конкретное мероприятие.

Суть работы: Перед человеком появляется схема зала, он жмет на любое место, в этот момент производится ajax-запрос, который выполняет запись в базу что билет забронирован. Пользователю показывается модальное окно с формой заказа или формой оплаты (выбирает сам в пределах модального окна). Так же выполнения запроса и показа модального окна в форме этого окна в спрятанные readonly INPUT вставляется значение 0, показывающее, что человек еще не произвел оплату или не отправил заявку. Соответственно если человек просто закрывает модальное окно, выполняется скрипт, который эту бронь сразу же снимает (чтобы другие могли сразу бронировать). Если же он производит оплату или отправляет заявку, в инпут записывается значение 1 и при закрытии модального окна его бронь не забирается, а переводится в статус (оплачено или в обработке) и на схеме для других показывается что место уже нельзя купить.

Вопрос: как быть, если попадется какой-нибудь человек, который немного понимает javascript и решит просто менять значение инпута с 0 на 1? Следовательно он будет кликать по месту, будет проходить мгновенная бронь, он меняет через код значение инпута с 0 на 1 и скрипт расценивает это как успешную операцию и место остается забронированным. Таким образом можно просто забронировать вообще все места и не производить ничего. Конечно это место ни за кем не будет значиться и его легко можно чистить из бд, но это плохой вариант.

Пока моих знаний в этой области хватает только что бы работать с cookie пользователя и подменять их все время, в зависимости от его действий, но я не знаю, насколько это хорошая практика. Что можно почитать по этой задаче?
  • Вопрос задан
  • 279 просмотров
Пригласить эксперта
Ответы на вопрос 2
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Фронт - всегда заказывает только: ID и кол-во! (это справедливо для любых покупок и тематик)
Запомните это как своё имя!
Ответ написан
Комментировать
@Bjornie
Изучаю Python
У меня был точно такой же вопрос когда-то, в итоге сделал валидацию на сервере и в IPN Paypal, который общался с базой и получал сигналы от Paypal на счет новых оплат.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы