Я создаю игру для iOS и OSX в Xcode с помощью Objective-C.Как безопасно хранить данные для моего приложения
Основная проблема, с которой я сталкиваюсь, заключается в поиске методов предотвращения мошенников от взлома моей игры.
Недавно я узнал, как сохранять/читать информацию через списки свойств. В версии OSX приложения я могу напрямую обращаться к этим спискам и редактировать их, щелкнув правой кнопкой мыши на приложении, выбрав «Содержимое пакета», а затем «Ресурсы». Мой первоначальный план состоял в том, чтобы хранить/редактировать данные, например, высокие баллы и т. Д. Очевидно, что основным недостатком этого будет то, что пользователи этого приложения смогут легко обманывать.
В дополнение к этому, я сыграл много игр для iOS, где я видел, как пользователи обманывали табло, а иногда даже пользователи, которые, похоже, взломали игру, поскольку у них есть большие суммы денег, которые у них определенно не могут быть (пример, о котором я думаю, - это соревновательная игра с защитой башни, в которой оба игрока начинают с 0 наличными и зарабатывают определенное количество каждые несколько секунд. Игроки определенно взломали, если они приобрели 100x наличных денег, чем это возможно в первые несколько секунд).
Следовательно, я беспокоюсь о безопасности данных, которые храню в своей игре, и ищу решение для этого, и следующие из них я рассматриваю.
Мне очень нравятся списки свойств, но было бы более безопасным использовать какой-либо другой способ хранения данных? Или это будет так же, потому что хакеры все еще могут декодировать эти файлы?
Есть ли способ скрыть эти списки свойств/данные внутри приложения, чтобы хакеры не могли получить к ним доступ? Или они, в конце концов, найдут их, если они будут выглядеть достаточно жестко?
Если вышеприведенные 2 невозможно или по-прежнему оставляют возможность читеров, то лучшим решением будет кодирование данных в этих списках, чтобы их можно было читать только с помощью какого-либо ключа? Например. каждый балл, который я хранил, будет закодирован путем деления на -129, в то время как они будут прочитаны приложением путем умножения на -129.
Возможно, кто-то порекомендует решение этой проблемы как для OSX, так и для iOS?
Я бы предложил использовать plist для хранения данных, но по соображениям безопасности перед сохранением данных в Pilst вы можете использовать некоторые алгоритмы кодирования-декодирования в вашем коде. Если какой-либо хакер может получить ваш plist, он/она не сможет расшифровать ваши данные. –