Чтобы использовать Google API для езды, я должен играть с проверки подлинности с использованием OAuth2.0. И у меня есть несколько вопросов об этом.
Идентификатор клиента и секрет клиента используются, чтобы определить, что мое приложение. Но они должны быть жестко, если это клиентское приложение. Таким образом, каждый может декомпилировать приложение и извлечь их из исходного кода. Значит ли это, что плохое приложение может претендовать, чтобы быть хорошим приложение с помощью хорошего приложения'ы идентификатора клиента и секрета? Так что пользователь будет показывать экран, который просит разрешение на хорошее приложение, даже если оно на самом деле задают плохое приложение? Если да, что делать? Или на самом деле я не должен беспокоиться об этом?
В мобильном приложении, мы можем встроенного WebView для нашего приложения. И это легко извлечь пароль поле в WebView, потому что приложение, которое запрашивает разрешение на самом деле и"браузер" по. Итак, OAuth в мобильное приложение не есть благо, что клиентское приложение не имеет доступ к учетным данным пользователя поставщика услуг?
Я начал писать комментарий к вашему вопросу, но потом выяснилось, существует слишком много, чтобы сказать, так вот мои мнения по этому вопросу в ответ.
Например, там были некоторые ошибки в библиотеке Facebook для Android, где он протекал, маркеры, журналы, вы можете узнать больше об этом здесь http://attack-secure.com/all-your-facebook-access-tokens-are-belong-to-us и здесь
Все в всех быть очень осторожными использования сторонних библиотек (здравый смысл на самом деле, но если маркер угона-это ваша большая проблема добавить еще один дополнительный осторожный).У меня был тот же вопрос, что и вопрос 1 здесь, и вообще в последнее время некоторые исследования себя, и я считаю, что это нормально, чтобы не держать на "ключ" по секрету. Тип клиентов, которые не сохранять конфиденциальность секрета клиента называемый "клиента" в каталоге OAuth2 спецификаций. Возможность злоумышленник, будучи в состоянии, чтобы получить код авторизации, а затем маркер доступа, мешают следующие факты.
Даже если пользователь указывает, что услуги, которые он/она доверяет клиенту, клиент не может получить код авторизации от сервиса просто показывая идентификатор клиента и секрет клиента. Вместо этого, клиент должен получить код авторизации напрямую от пользователей. (Это обычно делается путем перенаправления URL-адресов, которые я расскажу чуть позже.) Так, для вредоносных клиентов, это не достаточно знать идентификатор клиента/секрет, которым доверяет пользователь. Он должен как-то привлечь или обмануть пользователя, чтобы дать ему код авторизации, что должно быть сложнее, чем просто знать идентификатор клиента/секрет.
Предположим, что злоумышленник каким-то образом удалось привлечь пользователя и сделать ее/его нажмите "разрешаю это приложение и" кнопка на странице сервиса. Это вызовет url перенаправления ответ от службы в браузер пользователя с кодом авторизации с ним. Тогда код авторизации будет отправлен из браузера пользователя на URL-адрес перенаправления, и клиент должен слушать URL-адрес перенаправления для получения кода авторизации. (Перенаправление URL-адреса может быть слишком localhost, а я подумала, что это типичный способ “клиента” получает код авторизации.) Поскольку этот URL-адрес перенаправления зарегистрирован на сервисе с ID клиента/секрет, злонамеренный клиент не имеет возможности контролировать, где код авторизации присваивается. Это означает, что злоумышленник с вашего идентификатора клиента/секрет обладает еще одним препятствием для получения кода авторизации пользователя.
Отвечая на 2-й вопрос: API-интерфейсы Google мандат для безопасности причине, что проверка подлинности и входа в систему не может быть сделано в само приложение (как этого не разрешают) и должно быть сделано за пределами приложения с помощью браузера для повышения безопасности, которые изложены ниже: https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html