безопасность ajax в играх JavaScript

В моей игре JavaScript (сделанный с jQuery) мне сохранили положение плеера в базе данных. Когда символ перемещается, я просто отправляю запрос к определенному URL, Т.Е. mysite.com/map/x1/y3 (где положение символа является x=1, y=3).

Тот URL отправляет координаты в базу данных и проверки, чтобы видеть, ли какие-либо другие плееры около нашего. Если да, это отправляет, также JSON возражают с именем и проводами этого плеерам.

И вот мой вопрос - как защитить его? Кто-то мог изучить мой код JavaScript и подготовить сходство с URL mysite.com/map/x100/y234, и это 'телепортирует' его в некоторую другую сторону карты.

5
задан Stu Thompson 15 February 2010 в 13:02
поделиться

2 ответа

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

0
ответ дан 14 December 2019 в 04:37
поделиться

Любые данные/вычисления, обрабатываемые на JavaScript в браузере, будут небезопасны, поскольку весь код выполняется на локальной машине. Я бы рекомендовал перечислить все параметры, критически важные для честного опыта игры, такие как позиция игрока, счет, ресурсы... и вычислять управление этими параметрами на стороне сервера. Вы будете только собирать пользовательские данные из браузера и отправлять обновленное состояние в браузер для отображения.

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

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

8
ответ дан 14 December 2019 в 04:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: