Я не случайно в начале статьи написал: «читайте предыдущую статью». Проверка подписи моим сервером — это самый простой вариант защиты, но он имеет один минус. Нужно чтобы мой сервер был таким же отказоустойчивым как и сервер Apple. потому, что если он вдруг в офлайне — то подтверждения покупки не будет. Или второй вариант — воротить на стороне клиента кучу дополнительных методов для востановления покупки, сохранение тикета и т.д.
Этим методом я немного упрощаю жизнь. Это защита от дурака, но она работает. Чтобы не быть голословным.
в предыдущей версии у меня «наломали» на $30k. это исходя из статистики на моих серверах.
в текущей версии количество уменьшилось на 90%. Думаю тот кусочек кода того стоит :-)
а в том и нюанс, что проверяя те данные, которые я предлагаю в данной статье проверять — он не подделает, потому что эти данные так просто не доступны (не имея оригинального ответа от сервера Apple).
А если говорить о взломе конретного приложения с помощью дебагера — понятно, что данный механизм не будет преградой.
Извините, но вы наверное не в теме :-)
Никто не сидит в консоли и не подделывает. Есть утилиты, которые ставятся из Сидии, называются iAppFree и iAppCracker (вроде бы так, если я не ошибаюсь) — они это делают на автомате. Они подменяют системную функцию, которая должна отправлять запрос на сервер Apple, своей функцией, которая возвращает сразу, что покупка произошла успешно. По сути не происходит никакого вмешательства в работу нашего приложения, ломается механизм защиты iOS. А этот код для того, чтобы если система взломана, защитить нашу прогу от ложного ответа системы. Вот где-то так. конечно это упрощенно.
По поводу п. 1 — не знаю.
Но, если честно предпочитаю не использовать внешние сервисы для таких целей.
как-то свой роднее, что ли :-)
Пуши и пурчейзы очень легко реализуемы на своем хостинге.
а почему не устраивает UA — если может их сервера и не бывают особо в ауте, но частенько бывает такое что канал к серверу Applе — OK — и продажа проходит, а к другому сайту(тому жу UA) — лежит (или может быть слишком медленный) — тогда большой прикол. Я просто сам на таком палился, покупая какую-то прогу — потом долго доказывал разработчику, что я не баран. :-)
могу точно сказать — есть :-)
это серверная модель продаж (когда кроме сервера apple есть еще и ваш сервер, который отдельно проверяет сертификат через сервера apple.)
Но я отказался от такой модели по 2-м причинам.
1. У меня нет потребности в моем сервере (дополнительные данные не подгружаются)
2. Усложняется система покупки — если вдруг, по каким-либо причинам ваш сервер не работает, а сервера apple работают — то может возникнуть проблема — покупка произошла, а пользователь получиш шиш. Отзывы у вас будут веселые тогда :-)
Именно поэтому я реализовал верификацию на стороне клиента. Понятно, что эта защита не самая крутая. Но против универсальной тулзы типа iAp Cracker — достаточно сильное средство.
что и менно потестировать нельзя?
проверку покупки или что-то другое?
Если проверку покупки то можно, и очень просто.
Делаете билд подписанный adHoc сертификатом с правильнім bundle id, и совершаете покупку через тестовый аккаунт айтюнс коннекта. и все правильно обрабатывается. Даже не надо менять URL (sandbox не обязателен).
У меня в коде есть еще специальный метод, который отправляет ответ с сервера apple мне на сервер — это для регистрации покупки — в результате я в реальном времени вижу покупки — очень удобно для маркетиговых ходов.
Немного не так.
Top paid меряет загрузки.
Top grossing = Кассовые сборы — это рейтинг по кассе, сколько денег принесли.
Для разработчика самое приятное — это превое место в top grossing. Для амбиций «типа я самый крутой» — это top paid. Но не факт, что денег там больше.
Другими словами — top paid — это приз зрительских симпатий, а top grossing — это те, кто платит больше налогов, но о них мало кто знает :-)
Этим методом я немного упрощаю жизнь. Это защита от дурака, но она работает. Чтобы не быть голословным.
в предыдущей версии у меня «наломали» на $30k. это исходя из статистики на моих серверах.
в текущей версии количество уменьшилось на 90%. Думаю тот кусочек кода того стоит :-)
А если говорить о взломе конретного приложения с помощью дебагера — понятно, что данный механизм не будет преградой.
и его можно проверить. в предыдущей статье я описывал что именно проверяется.
Никто не сидит в консоли и не подделывает. Есть утилиты, которые ставятся из Сидии, называются iAppFree и iAppCracker (вроде бы так, если я не ошибаюсь) — они это делают на автомате. Они подменяют системную функцию, которая должна отправлять запрос на сервер Apple, своей функцией, которая возвращает сразу, что покупка произошла успешно. По сути не происходит никакого вмешательства в работу нашего приложения, ломается механизм защиты iOS. А этот код для того, чтобы если система взломана, защитить нашу прогу от ложного ответа системы. Вот где-то так. конечно это упрощенно.
Ломают пользователи, которые хотят на халяву получить какой-то функционал приложения — это ответ на кто, и зачем.
Но есть вопрос: насколько яркое свечение? желательно в сравнении. И какие цвета можно таким образом сделать?
Но, если честно предпочитаю не использовать внешние сервисы для таких целей.
как-то свой роднее, что ли :-)
Пуши и пурчейзы очень легко реализуемы на своем хостинге.
а почему не устраивает UA — если может их сервера и не бывают особо в ауте, но частенько бывает такое что канал к серверу Applе — OK — и продажа проходит, а к другому сайту(тому жу UA) — лежит (или может быть слишком медленный) — тогда большой прикол. Я просто сам на таком палился, покупая какую-то прогу — потом долго доказывал разработчику, что я не баран. :-)
это серверная модель продаж (когда кроме сервера apple есть еще и ваш сервер, который отдельно проверяет сертификат через сервера apple.)
Но я отказался от такой модели по 2-м причинам.
1. У меня нет потребности в моем сервере (дополнительные данные не подгружаются)
2. Усложняется система покупки — если вдруг, по каким-либо причинам ваш сервер не работает, а сервера apple работают — то может возникнуть проблема — покупка произошла, а пользователь получиш шиш. Отзывы у вас будут веселые тогда :-)
Именно поэтому я реализовал верификацию на стороне клиента. Понятно, что эта защита не самая крутая. Но против универсальной тулзы типа iAp Cracker — достаточно сильное средство.
проверку покупки или что-то другое?
Если проверку покупки то можно, и очень просто.
Делаете билд подписанный adHoc сертификатом с правильнім bundle id, и совершаете покупку через тестовый аккаунт айтюнс коннекта. и все правильно обрабатывается. Даже не надо менять URL (sandbox не обязателен).
У меня в коде есть еще специальный метод, который отправляет ответ с сервера apple мне на сервер — это для регистрации покупки — в результате я в реальном времени вижу покупки — очень удобно для маркетиговых ходов.
и какого содержания?
Top paid меряет загрузки.
Top grossing = Кассовые сборы — это рейтинг по кассе, сколько денег принесли.
Для разработчика самое приятное — это превое место в top grossing. Для амбиций «типа я самый крутой» — это top paid. Но не факт, что денег там больше.
Другими словами — top paid — это приз зрительских симпатий, а top grossing — это те, кто платит больше налогов, но о них мало кто знает :-)