Select Page

О безопасности Online Flash-игр

О безопасности Online Flash-игр

Победителем природно является тот, кто быстрее/точнее/правильнее выполнил задание.

Как это трудится?

Подобная онлайн игра обычно состоит из 2 или 3 частей:

  1. Непосредственно «флэшка», в какой играет пользователь
  2. Статистика на сервере, сохраняющая результат и определяющая победителя.
  3. [Опционально] Вспомогательный скрипт на сервере, обеспечивающий флэшку необходимой информацией по запросу.

В случае двухкомпонентной игры (п1, п2), вся игра реализована во флэш. Итоги просто отправляются по HTTP скрипту на сервере.

Если же присутствует вспомогательный скрипт, то во пора игры, флэшка обращается к нему чтобы получить/отправить кой-какую информацию об игре, например текущий прогресс.

Безопасно ли?

С одной сторонки всё правильно и практически безопасно — флэшка общается напрямую со скриптами сервера, пускай и по HTTP, но «замкнуто» для пользователя.

Однако, если принять тот факт что любая информация, получаемая от пользователя, может быть подделана, то эта схема перестаёт быть безопасной.

«Хакер» может проследить протокол общения флэшки с сервером, а затем воспроизвести его, но уже с изменёнными по его усмотрению параметрами.

Под протоколом общения тут понимаются аргументы запроса, передаваемые от клиента серверу и соответствующие аргументы ответа на запрос.

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

Как защититься?

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

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

Так можно реализовать такую схему:

При начале игры, на сервер пускается случайно сгенерированное число, которое сохраняется в базе данных совместно со временем его получения.

По завершению игры, внутри флэшки по некоторому алгоритму создаётся контрольная сумма из посланного числа, время начала / завершения игры, результата и т.д., которая пускается на сервер вместе с результатом.

Скрипт на сервере по аналогичному алгоритму вычисляет какой образцово должна быть эта сумма и сравнивает её с полученной. Если они равны или имею допустимое отличие (в зависимости от алгоритма), то результат принимается, иначе считается подделанным и отвергается.

Также можно использовать передачу этих по зашифрованному каналу. Это во многих случаях сложнее и может требовать добавочного программного обеспечения, но потенциально более безопасно т.к. «хакеру» будет сложнее получить протокол общения.

Сейчас игра в безопасности?

На некоторое время да, пока ей не заинтересуется более «продвинутый» в безопасности человек.

Стоит также учесть тот факт, что флэш игру можно декомпилировать и посмотреть алгоритм.

Подводя итоги

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

Чем немало сложные и надежные алгоритмы применены в защиты, тем больше желающих получить первое пункт на халяву «пойдут лесом». Однако все-таки стоит учитывать целесообразность применения сложной защиты.

Не секрет что её разработка спрашивает определённое число соотношения человек/часов, причем чем сложнее защита, тем вяще будет данное соотношение.

О безопасности Online Flash-игр

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

Однако если по итогам игр подводятся какие либо итоги и/или раздаются награды, то стоит поразмыслить о защитных механизмах. Чем более значимый приз — тем более сложным должен быть механизм защиты от «нечестных» игроков.

About The Author

Leave a reply

Ваш адрес email не будет опубликован.