Как убедиться, что API попадает только в указанное приложение?

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

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

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

Что ж, сеть безопасности - лучший подходящий сценарий для вашего приложения ... Подробно объясните этот блог: medium.com/@hargoyal/… надеюсь, что это будет полезно

Nikhil Lotke 27.06.2018 16:13
0
1
239
1

Ответы 1

How to make sure that the /api/send-otp call is coming only from the authorized android app and not from any script/client

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

В качестве альтернативы вы можете использовать старую версию Google Play Services GoogleAuthUtil.

You use the GoogleAuthUtil class, available through Google Play services, to retrieve a string called an “ID Token”. You send the token to your backend and your backend can use it to quickly and cheaply verify which app sent it and who was using the app.

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

Также есть еще один способ, Google Sign in, упоминание в этот блог по безопасности

app_version можно легко перехватить, и затем запрос можно будет отправить через Postman / cURL

thekosmix 29.06.2018 12:56

Я согласен. Поскольку ваш полный код / ​​ресурсы находятся на стороне пользователя. они могут получить все, что захотят, это просто вопрос их серьезности ..

isamirkhaan1 29.06.2018 14:30

Другие вопросы по теме