Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Безопасная пересылка переменных (http://www.flasher.ru/forum/showthread.php?t=107577)

romulko 04.02.2008 23:10

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

Игра идет на кредиты, которые игрок должен набирать понемножку.

Знакомый программист говорит, что можно очень легко перехватить переменные и выслать скрипту новые данные (например, сразу 1000 кредитов).

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

Спасибо.

etc 04.02.2008 23:31

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

romulko 05.02.2008 02:30

Но, например, эти самые действия можно посылать и не флешем?

Суть игры такова - двигаются вагонетки с золотом и камнем. Если юзер вытаскает золото, к общей сумме инкрементируется стоимость вытащенного золота (http://cs.if.ua/game). Если, допустим, отсылать запрос на сервер, что юзер только что взял золото, то этот же запрос можно также подделать?

Как же быть?
Спасибо.

etc 05.02.2008 02:33

Отправлять на сервер «юзер ткнул по такой-то вагонетке». А уж вытащил или нет — решает сервер, а не клиент.

2morrowMan 05.02.2008 02:55

Флеш-клиент только показывает юзеру то, что происходит на сервере + отсылает серверу комманды юзера! На сервере нужно проверять комманды прийнятые от клиента на корректность, так как можно и без клиента отправить серверу комманды не допустимые в данный момент или вообще! Короче и т.д. и т.п. ;)

romulko 07.02.2008 12:15

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

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

iNils 07.02.2008 17:14

А что мешает посмотреть какое число пришло и использовать его в своих целях?

romulko 07.02.2008 17:25

А как-же он будет знать это число? Как мне программер сказал, перехватывать можно только передачу параметров. Юзверь сможет получить число уже то, что будет неактуально, так как когда оно поступит в скрипт, пхп сверяет его с тем, что было до этого, записывает данные в базу по золоту и генерирует новое число. Оно записывается в базу и генерируется в хмл. Флеш получает новое число и, когда юзверь хватает камешек, опять высылается инфа с новым секретным числом и так до бесконечия, пока игра не надоест нашему хакеру.

iNils 07.02.2008 17:34

А программер забыл сказать, что перехвать можно не только передачу, но и прием?

romulko 07.02.2008 18:34

Видимо, не забыл, а просто не сказал.

Стремная игрушка а сколько мороки.....

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


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

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