Страницы

Поиск по вопросам

пятница, 31 января 2020 г.

Защита от подделывания данных в ajax запросе самим пользователем

#запрос #ajax #клиент #защита #javascript


Всем привет, уже весь инет перерыл. Представим себе такую ситуацию. У нас есть игра
на js, в которой пользователь набирает очки. Эти очки нужно сохранить на сервер для
создания таблицы рекордов. Рекорд вместе с id пользователя и токеном через ajax передается
на php сервер. Если токен защищает аккаунт пользователя от стороннего вмешательства,
то как защитить рекорд от замены его самим пользователем? Ведь юзеру ничего не мешает
подменить запрос, взяв свой токен, и легко попасть на первое место. Переменная, хранящая
текущий результат на клиенте, зашита в функцию-обработчик. Поэтому пользователь ее
просто так не изменит. А вот запрос подделает запросто. Какие средства защиты нужно
использовать? Помогите!    


Ответы

Ответ 1



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

Ответ 2



Цитата с хабра: Написал метод который дублировал результат. В одном параметре передавался реальный, в другом шифрованный результат, методом замены символа по ключу. А далее, на сервере оба сравниваются и если что-то не соответствует, то – бан по аккаунту. И еще, сервер отправляет сгенрированный ключ при первом обращении. Клиент же, должен его вернуть с результатом. Без этого ключа, результат не примется и если все соответствует, и все проходит проверку, то результат записывается в БД, и генерируется новый ключ, который опять отдается клиенту. Это сделано для того, чтобы повторно запрос с результатом не могли отправить, как делается в программе «Charles».

Комментариев нет:

Отправить комментарий