Как убедиться, что API поражен только назначенным приложением? - PullRequest
0 голосов
/ 27 июня 2018

Скажем, у меня есть API /api/send-otp, который принимает номер телефона в качестве ввода и отправляет otp на номер телефона пользователя. Теперь этот API не может быть аутентифицирован, потому что токен аутентификации генерируется после успешного /api/confirm-otp вызова.

Как убедиться, что вызов /api/send-otp поступает только из авторизованного приложения android , а не из какого-либо скрипта / клиента.

PS: я не могу встроить любую логику хэширования в apk, так как она может быть перепроектирована. Что-то предоставлено Google (сеть безопасности)? Будет полезна любая соответствующая ссылка на документацию / реализацию.

1 Ответ

0 голосов
/ 27 июня 2018

Как убедиться, что вызов / api / send-otp идет только из авторизованного приложения для Android, а не из любого скрипта / клиента

Самый простой способ - передать параметр индикатора, например, app_version, и проверить его на стороне сервера. Если он не существует, не аутентифицируйте запрос.

Альтернативно, вы можете использовать старые сервисы Google Play GoogleAuthUtil

Вы используете класс GoogleAuthUtil, доступный через сервисы Google Play, чтобы получить строку, называемую «ID Token». Вы отправляете токен своему бэкэнду, и ваш бэкэнд может использовать его для быстрой и дешевой проверки того, какое приложение отправило его и кто его использовал.

Проверка внутренних вызовов из приложений Android

Кроме того, есть еще один способ, войти в Google, упомянуть в этот блог безопасности

...