Проверка подлинности телефона на стороне сервера Firebase + PHP - PullRequest
0 голосов
/ 12 марта 2019

Я создаю пользовательскую систему управления пользователями, включающую все данные приложения, которые должны находиться на сервере приложений, но телефон должен быть аутентифицирован с помощью firebase.Когда новый пользователь регистрируется в системе, происходит проверка подлинности телефона Firebase.При успешной аутентификации из firebase регистрационные данные отправляются на сервер через API.Теперь проблема в том, как мне проверить на стороне сервера, что номер телефона аутентифицирован с помощью firebase или нет?Если я разрешаю регистрацию без проверки подлинности на основе firebase на стороне сервера, запрос API может быть кем-то подделан.В настоящее время я использую kreait/firebase-php ^4.18 Firebase SDK для PHP.Поток, который я сейчас использую, продемонстрирован ниже Currunt Flow of Registration, и поток, который я хочу реализовать, также можно задать как Proposed Solution to Secure the Registration flow.

1 Ответ

1 голос
/ 14 марта 2019

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

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

  • номер телефона действителен
  • номер телефона был успешно использован для аутентификации пользователя в тот момент, когда номер был связан с указанным пользователем
  • номер телефона не может быть связан с другим пользователем

Вы не должны предполагать, что этот номер телефона теперь "проверен". Как указано на официальных страницах документации Firebase:

Проблемы безопасности

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

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

Источник: https://firebase.google.com/docs/auth/web/phone-auth#security-concerns

PS: Единственный другой способ добавить номер телефона пользователю - через Admin SDK, и здесь вы несете ответственность за то, чтобы номер телефона принадлежал пользователю.

PSS: Насколько мне известно (и проверено), API-интерфейсы Firebase REST не предоставляют информацию о «проверенном номере телефона».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...