Безопасность: setUserScore и/или отправка на сервер

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.

Безопасность: setUserScore и/или отправка на сервер

Сообщение Noise Gate » 28 май 2010, 11:07

Возник вопрос: как максимально защитить вызов setUserScore и/или отправку каких-либо значений на собственный сервер.

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

То же самое касается и отправки на сервер: свой auth_key я знаю всегда, поэтому, если не шифровать запросы, то их тоже можно подделать (проверено - делал роботов для нескольких flash-игр ВКонтакте). С другой стороны, метод шифрования тоже можно получить декомпиляцией, если разобраться в коде. Есть хоть какой-то метод защититься от подобного?

Предлагаю обсуждать различные методы. Буду благодарен за любые идеи.
Noise Gate

 
Автор темы
Сообщения: 691
Зарегистрирован: 28 апр 2010, 12:34
Откуда: СПб
Благодарил (а): 31 раз.
Поблагодарили: 64 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Безопасность: setUserScore и/или отправка на сервер

Сообщение совесть » 28 май 2010, 21:16

в один прекрасный и солнечный день, скачал я CS5.... а там функция от декомпиляции, и еще (вроде как) нету декомпиляторов для этой штуки. а дальше, дальше делаем ключ, который знает флеха и сервак. заодно поюзаем алгоритм, который генерирует случайный код. например getServerTime в другй системе счисления. кодируем это всё, отправляем серверное время, пхп всё обрабатывает и проверяет, и вуаля, готово (=
ERROR 402, NO BEER
Аватара пользователя
совесть
Разработчик
Разработчик
 
Сообщения: 156
Зарегистрирован: 22 дек 2009, 23:58
Откуда: Санкт-Петербург
Благодарил (а): 4 раз.
Поблагодарили: 16 раз.

Re: Безопасность: setUserScore и/или отправка на сервер

Сообщение bodnar » 28 май 2010, 21:24

Можно делать так, чтобы не флешка рассчитывала счет, а сервер, по исходному положению и полученному набору действий пользователя рассчитывал счет. Но этот вариант подходит только если данные хранить на своем же серваке
Обязательно к прочтению: ActionScript 3.0 Ошибки среды выполнения
Аватара пользователя
bodnar
Модератор
Модератор
 
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41
Благодарил (а): 16 раз.
Поблагодарили: 185 раз.

Re: Безопасность: setUserScore и/или отправка на сервер

Сообщение Noise Gate » 01 июн 2010, 08:42

совесть
На счет CS5 - интересно, а вот отправлять ключи и сами сообщения в одном запросе, имхо, плохая идея - только если на 100% быть уверенным, что не декомпильнут и не сломают алгоритм шифрации данных...

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


А может кто-нибудь знает, как это делается на сайтах вроде MochiGames, Kongregate и прочих крупных порталах?
Noise Gate

 
Автор темы
Сообщения: 691
Зарегистрирован: 28 апр 2010, 12:34
Откуда: СПб
Благодарил (а): 31 раз.
Поблагодарили: 64 раз.

Re: Безопасность: setUserScore и/или отправка на сервер

Сообщение совесть » 01 июн 2010, 13:41

кто сказал что мы ключ посылаем? мы посылаем только sig. ключа не видно. можно сделать мудрено, но верно. посмотреть через сколько приходят данные с флешки(время задержки), а флешкой отправлять серверное время, а на серваке проверяем диапозон.
ERROR 402, NO BEER
Аватара пользователя
совесть
Разработчик
Разработчик
 
Сообщения: 156
Зарегистрирован: 22 дек 2009, 23:58
Откуда: Санкт-Петербург
Благодарил (а): 4 раз.
Поблагодарили: 16 раз.

Re: Безопасность: setUserScore и/или отправка на сервер

Сообщение Noise Gate » 02 июн 2010, 08:13

совесть,
не уверен, что до конца понял. Если не сложно, распиши алгоритм поподробнее, пожалуйста.
Noise Gate

 
Автор темы
Сообщения: 691
Зарегистрирован: 28 апр 2010, 12:34
Откуда: СПб
Благодарил (а): 31 раз.
Поблагодарили: 64 раз.

Re: Безопасность: setUserScore и/или отправка на сервер

Сообщение Noise Gate » 28 июл 2010, 14:10

Нашел интересные мысли по поводу сабжа:
http://skahin.blogspot.com/2010/01/flex-php.html
Noise Gate

 
Автор темы
Сообщения: 691
Зарегистрирован: 28 апр 2010, 12:34
Откуда: СПб
Благодарил (а): 31 раз.
Поблагодарили: 64 раз.

Re: Безопасность: setUserScore и/или отправка на сервер

Сообщение Noise Gate » 11 авг 2010, 10:51

Пришел к выводу, что как ни старайся, а спастись не удастся, поэтому необходимо делать какую-то "интеллектуальную" защиту на стороне сервера, которая позволит вычислить злоумышленников...
Noise Gate

 
Автор темы
Сообщения: 691
Зарегистрирован: 28 апр 2010, 12:34
Откуда: СПб
Благодарил (а): 31 раз.
Поблагодарили: 64 раз.

Re: Безопасность: setUserScore и/или отправка на сервер

Сообщение Noise Gate » 19 окт 2010, 08:23

Ну вот - все, как я и предполагал. Интеллектуальная защита важна как никогда! 8-)
Вчера запустили приложение на рейтинг, сегодня в логах по безопасности наблюдаю следующее:
1287421422 ; 18-10-2010 21:03:42 ; 31257179 ; user get penalty: 748

А это значит, что чел предпринял как минимум 748 попыток сымитировать правильный ответ клиента серверу :lol:

И еще:
1287422504 ; 18-10-2010 21:21:44 ; 0 ; user not authorized on answer
1287422362 ; 18-10-2010 21:19:22 ; 2147483647 ; user not authorized on answer

Это уже пользователи с id = 0 и 2147483647.

Ну-ну, ломайте-ломайте =)
Noise Gate

 
Автор темы
Сообщения: 691
Зарегистрирован: 28 апр 2010, 12:34
Откуда: СПб
Благодарил (а): 31 раз.
Поблагодарили: 64 раз.

Re: Безопасность: setUserScore и/или отправка на сервер

Сообщение Nick Lisogor » 07 янв 2011, 15:46

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


Api_secret можно и защитить и при декомпиляции его значения вы просто не узнаете)
Услуги клиент-сервер(оптимальные цены)
Работаю с PHP, ActionScript 3, JavaScript.
Nick Lisogor
FL Team
FL Team
 
Сообщения: 119
Зарегистрирован: 12 дек 2010, 14:08
Благодарил (а): 10 раз.
Поблагодарили: 9 раз.

След.

Вернуться в Программирование на Flash



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron