Actionscript 3.0 -> PHP -> Проблема безопасности MySQL в игровом приложении - PullRequest
2 голосов
/ 13 ноября 2011

Я планирую сделать игру с actioncript 3.0 (flash). Однако у меня возникли некоторые проблемы с безопасностью при сохранении пользовательских баллов.

Чтобы быть более конкретным, прочитайте ниже, и вы поймете, в чем именно проблема.

  1. Вы запускаете мое флеш-приложение. PHP создает сеанс для вашего имени пользователя. Играя несколько минут и набирая 750 очков.
  2. Вы нажимаете кнопку «Сохранить мои очки».
  3. Он связывает "game.php? Points = []" с вашей суммой очков, следовательно, game.php? Points = 750.
  4. PHP подключается к MySQL и выполняет запрос на обновление / вставку с именем пользователя, которое вы указали при открытии приложения, и получает баллы с помощью $ _GET ['points'], как вы можете видеть на 3.

Проблема в том, Любой, кто мог бы напрямую просматривать "game.php? Points = 999999999999", сохранял свои очки в базе данных.

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

Я также думал о создании личного ключа для каждого игрока при его регистрации и шифровании соответствующим образом, но он также не будет работать, потому что, как только пользователь меняет свои очки с помощью Cheat Engine, flash автоматически шифрует точки с данным закрытым ключом, следовательно, другая бесполезная теория ...

Некоторые люди предлагали мне использовать SSL только потому, что его используют популярные компании, такие как Zynga, но я ищу другие теории здесь.

Есть идеи на этот случай, кроме использования SSL?

Ps. Игра будет MMO, поэтому защита транзакций с данными необходима.

Ответы [ 2 ]

1 голос
/ 13 ноября 2011

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

0 голосов
/ 16 ноября 2011

Прежде всего SSL не поможет вам вообще.Похоже, вы никогда не слышали о Tamperdata.

Это классическое нарушение CWE-602 .Криптография не решает эти проблемы, потому что злоумышленник имеет больше контроля над приложением, чем вы.Некуда спрятать секрет.

...