Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.10.2006, 19:08
pdvision вне форума Посмотреть профиль Отправить личное сообщение для pdvision Найти все сообщения от pdvision
  № 1  
Ответить с цитированием
pdvision

Регистрация: Oct 2006
Сообщений: 7
Cool Безопасность передачи переменных скрипту PHP

Есть игра на флэше, по окончании которой предлагается ввести свои данные для рейтинга, после чего они передаются методом POST PHP скрипту который уже добавляет их в БД.

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

Подскажите как можно этого избежать?
Делать проверку в скрипте на HTTP_REFFERER неимеет смысла, так как подменить его элементарно.

Что делать незнаю

Может кто уже сталкивался с такой проблемой и решил ее?
Заранее спасибо!

Старый 16.10.2006, 19:45
FourSide вне форума Посмотреть профиль Отправить личное сообщение для FourSide Найти все сообщения от FourSide
  № 2  
Ответить с цитированием
FourSide

Регистрация: Jul 2006
Сообщений: 387
Отправить сообщение для FourSide с помощью Skype™
Как вариант - можно в самом начале игры от сервера получить уникальный код (md5()), а потом всё общение с сервером осуществлять с этим кодом. Но это тоже можно поломать.

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

Старый 16.10.2006, 21:08
pdvision вне форума Посмотреть профиль Отправить личное сообщение для pdvision Найти все сообщения от pdvision
  № 3  
Ответить с цитированием
pdvision

Регистрация: Oct 2006
Сообщений: 7
Цитата:
Сообщение от FourSide
Но для более осмысленного описания нужно хотя бы знать что за игра.
Игра паззл, основной параметр на котором строится рейтинг - время за которое он собран.

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

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

Старый 16.10.2006, 21:16
pdvision вне форума Посмотреть профиль Отправить личное сообщение для pdvision Найти все сообщения от pdvision
  № 4  
Ответить с цитированием
pdvision

Регистрация: Oct 2006
Сообщений: 7
Можно конечно вобще перестроить алгоритм занесения результатов в базу (без передачи времени POST-ом). Например после окончания игры флэш создает текстовый файл с каким нибудь уникальным именем, куда записывает результаты игры и переменную с именем созданного файла передает тем же POST-ом PHP скрипту который парсит его и дабавляет уже из файла результат в базу. Потом это файл стирает с сервака.

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

Поэтому хотелось бы расмотреть вариант зашиты существующего алгоритма.

Старый 17.10.2006, 19:00
Dendroid вне форума Посмотреть профиль Отправить личное сообщение для Dendroid Посетить домашнюю страницу Dendroid Найти все сообщения от Dendroid
  № 6  
Ответить с цитированием
Dendroid
 
Аватар для Dendroid

Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
Для такого типа игр вполне подходит такой вариант: посылать не только конечный результат, но и большую кучу дополнительной (статистической) информации, например, позволяющей воспроизвести весь процесс сбора пазла (фактически, все манипуляции мышкой). Создавая десятки и сотни килобайт дополнительных данных, делаем подделку их ОЧЕНЬ трудоёмкой. Тем более, что подделать данные качественно очень сложно (чтобы это выглядело похоже на игру человека, очень уж специфичны моменты, когда человек задумывается, а когда может играть быстро), а проверить довольно просто, глазами: написать проигрыватель (на основании сохранённых данных), который будет показывать процесс сбоки. Тем более такую проверку можно поручить остальным игрокам - и это само по себе будет довольно интересно, если они смогут посмотреть как создавался рекорд в движении. Тем более, имея такую кучу статистических данных на сервере, можно легко вычислять подозрительных игроков, просто посмотрев как изменялась результативность их игры со временем.
Такой способ делает взлом самих данных проктически нереальным... Уже работает на одном из игровых серверов в нескольких игрушках.
__________________
Верить никому нельзя. Мне - можно. :)

Старый 17.10.2006, 19:09
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Проигрыватель может отсекать читеров и работать в автоматическом режиме (при желании, читеров можно проверить визуально).
Во всяком случае это избавляет от просмотра сотен игр.

Старый 17.10.2006, 19:13
Dendroid вне форума Посмотреть профиль Отправить личное сообщение для Dendroid Посетить домашнюю страницу Dendroid Найти все сообщения от Dendroid
  № 8  
Ответить с цитированием
Dendroid
 
Аватар для Dendroid

Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
Ну зачем же сотен - нам есть дело только до верхушки таблицы рекордов, да и я же говорю, можно это отдать на откуп остальным претендентам, надо всегда устраивать так, чтобы сама система работала против нечестной игры
__________________
Верить никому нельзя. Мне - можно. :)

Старый 17.10.2006, 21:17
pdvision вне форума Посмотреть профиль Отправить личное сообщение для pdvision Найти все сообщения от pdvision
  № 9  
Ответить с цитированием
pdvision

Регистрация: Oct 2006
Сообщений: 7
Цитата:
Сообщение от Dendroid
Для такого типа игр вполне подходит такой вариант: посылать не только конечный результат, но и большую кучу дополнительной (статистической) информации
Такой вариант тоже расматривался. Но в моем случае затраты на его исполнение будут неоправданы (я говорю про разработку проигрывателя) так как игра нужна всего в течении нескольких месяцев. Конечно можно отсылать кучу статистики скрипту и потом вылавливать в ней несоответствия, но в любом случае гарантий от взлома никаких нет. Это лишь очередное препятствие для читера.

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

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

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

Честно сказать с флэшем работаю впервые и сильно удивлен уровнем защищенности SWF. В то время как все разработчики софта уделяют огромное внимание секьюрности своих проектов Macromedia уже в течении 8 версий делает флэш такими незащищенными. Будем надеяться что Adobe исправит этот недостаток.

Старый 17.10.2006, 21:22
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 10  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от pdvision
Честно сказать с флэшем работаю впервые и сильно удивлен уровнем защищенности SWF. В то время как все разработчики софта уделяют огромное внимание секьюрности своих проектов Macromedia уже в течении 8 версий делает флэш такими незащищенными. Будем надеяться что Adobe исправит этот недостаток.
SWF открытый формат.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:28.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:28.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.