В моей игре / приложении (iPhone) клиентская сторона отправляет http-запросы (get или post) на http-сервер игры.
Запросы имеют эту форму:
gameserver.com / идентификатор пользователя / givebonus / 100
Это, например, даст userId бонус 100.
Теперь мы зашифруем запрос к серверу, и он станет примерно таким:
gameserver.com / 42c34c234c234 / ghjghjg4hj32g42jh2 / 424j23gh4h234h2j34j23
Я не хочу беспокоиться о том, что какой-то хакер пытается расшифровать это, чтобы раскрыть смысл всего этого,
что меня беспокоит, так это нюхает .
Потому что, как только хакер знает, что:
gameserver.com / 42c34c234c234 / ghjghjg4hj32g42jh2 / 424j23gh4h234h2j34j23
Дает бонус +100 , он может просто продолжать посылать один и тот же запрос снова и снова .
Так как вы можете предотвратить это?
Разговор с несколькими друзьями - это возможные решения, но ни одно из них не будет ни простым в реализации, ни более безопасным:
- Перемещение всех (большей части) стороны логического сервера.
- Рукопожатие на первый запрос и ответ только на этот mac-адрес. (Это не сработает, я думаю)
- Динамическое изменение личного ключа шифрования? Как?
- Шифровать все запросы, в основном используя https? (Хотя не знаю как :()
Я уверен, что есть более простой ответ, которого я не вижу: P