2016-03-07 1 views
1

Я работаю с мобильными приложениями и API RESTful, и у меня есть некоторые сомнения в безопасности при регистрации нового пользователя. Я разрабатываю клиент Android, который будет связываться с бэкэнд через запросы REST.Создание нового пользователя на сервере REST через клиента Android

Мне очень ясно, как использовать и использовать сервер авторизации OAuth и как осуществляется связь между клиентом android (frontend) и сервером ресурсов или сервером авторизации (бэкэнд).

В большинстве документов упоминается, что client_id и client_secret должны храниться на сервере вместо мобильного приложения, чтобы избежать того, чтобы такие данные могли быть выяснены в конечном итоге для процесса декомпиляции.

Если я хочу выполнить операцию по созданию нового пользователя, непосредственно в приложении (как это бывает в приложениях, таких как snapchat, pinterest и т. Д.), Как я могу выполнить обмен клиентом с REST API без client_id и client_secret (или каких-либо учетных данных) в приложении?

Первым и самым простым решением было бы перенаправить пользователя на веб-страницу регистрации, но как это можно сделать в APP?

ответ

1

https://stackoverflow.com/a/14572051/5055317

Простой ответ: нет данных о .apk является безопасным.

Существует множество способов скрыть ваши ключи API внутри apk. Например, используя обфускаторы, такие как ProGuard/DexGuard, используя кодировку Base64 или скрывая эти строки с JNI. Но в конце они просто создают некоторую задержку для получения ключей.

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

Вот статья Майкла Ramirez обзор о методах скрыть: https://rammic.github.io/2015/07/28/hiding-secrets-in-android-apps/

А вот обсуждение этой темы с некоторыми сотрудниками Google: https://groups.google.com/forum/#!topic/google-places-api/SmujrL-pDpU