Защитите Ios От Джейлбрейка На Стороне Сервера

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

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

В одной из этих компаний я работаю.

На данный момент в Испании проходит софт-лонч нашей игры.

Я сам являюсь серверным разработчиком и ответственность за проверку внутриигровых покупок в игре, которую разрабатывала наша компания, легла на мои плечи как программиста.

Все внутриигровые покупки подтверждены моим сервером.

Это происходит следующим образом.

Пользователь покупает нашу валюту в игре, затем на смартфон с сервера покупки Apple отправляется json-сообщение со всеми данными о покупке.

После этого этот json попадает на наш сервер, некоторые поля проверяются и отправляются на сервер проверки Apple, чтобы проверить, все ли в порядке.

Если все в порядке, то приходит json от apple, в котором содержится много информации о покупке.

В соответствии с документация на сайте Apple нам нужно только проверить поле статуса из присланного нам json. Если он равен 0, то покупка верна и мы берем с пользователя нашу валюту.

Я не придумал ничего нового и следовал этой документации.

Во время мягкого запуска статистика показала, что один из пользователей купил в игре нашу валюту на 400 долларов.

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

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

Немного поискав в Интернете, мы наткнулись на такую вещь, как LocallAPStore Cydia Твик в джейлбрейке iOS. Это работает следующим образом.

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

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

Но иногда этого недостаточно.

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

Жду ваших комментариев, пожеланий и замечаний.

Теги: #покупка в приложении #iOS #проверка #cydia #побег из тюрьмы #java #разработка iOS

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.