Подтвердить что ты не робот

Насколько безопасно "будущее игр в браузере"?

HTML5 будет широко использоваться как способ разработки игр, это предсказание. Но у меня есть мои вопросы об этом: как онлайн-игра HTML5 может быть защищена?

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

  • Исходный код на стороне клиента виден и невозможно скрыть
  • Можно выполнить Javascript из командной строки

Я не вижу способа предотвратить попадание этого хакера на свой значок... Есть ли способ сделать эту игру безопасной?

4b9b3361

Ответ 1

Да, если бы вы разработали свою игру, это было бы очень легко взломать. Но почему это относится к HTML5? Вы можете сделать это с любым типом игры, который был написан так. Даже с родной настольной игрой вы все равно можете подделать запрос. Единственное различие заключается в том, что поддельные HTTP-запросы проще, чем обратные запросы, сделанные в настольной игре.

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

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

Ответ 2

Это ничем не отличается от любой флеш-игры или даже игры с загружаемым клиентом, например, World of Warcraft. Все, что является неотъемлемой частью игры, должно выполняться на сервере.

Ответ 3

Один из способов, с помощью которого HTML5 может быть более безопасным, заключается в том, что вы можете его изменить в любое время. Итак, скажем, у вас есть вызов AJAX, чтобы предоставить пользователю вознаграждение. Вы можете периодически менять подпись этого вызова, чтобы "читы" больше не работали. Не забудьте следить за игроками, которые все еще используют старый API, и вы можете наказывать игроков с помощью читов.

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