Отчет о реальных результатах игры во Flash и PHP - PullRequest
1 голос
/ 26 января 2011

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

Ответы [ 3 ]

4 голосов
/ 26 января 2011

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

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

1 голос
/ 26 января 2011

Используйте шифрование AES вместо хеширования.

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

Существует также решение, которое использует JavaScript для кодирования на стороне клиента. Вы можете скачать полный пакет с кодом PHP, JS, Flex и AIR здесь .

1 голос
/ 26 января 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...