Использует ли токен доступа Facebook безопасный способ проверки пользователя?

В моем приложении пользователь может подписаться на Facebook, а приложение имеет токен доступа пользователя (скажем, "abc" ), я хочу использовать этот токен для создания пользователя на моем собственном сервере.

Можно ли отправить этот токен доступа на мой сервер (используя SSL), затем получить имя пользователя и идентификатор пользователя, используя https://graph.facebook.com/me?access_token=abc в мой сервер и проверить, что приложение, к которому принадлежит токен, принадлежит мне с https://graph.facebook.com/app?access_token=abc. Если это мое приложение, я затем сохраняю пользователя в своей пользовательской базе данных и/или регистрирую их.

Можно ли обмануть эту систему? Можете ли вы подумать о том, как кто-то может войти в систему, как кто-то еще?

+3
источник поделиться
2 ответа

Вы должны проверить всю документацию Authentication и спецификацию Oauth, чтобы увидеть различные доступные потоки аутентификации

В общем, вы можете создать пользователя на своем сервере на основе токена доступа и быть достаточно уверенным, что когда вы получаете токен доступа из Facebook для того же идентификатора пользователя, что он один и тот же человек.

Если вам требуется очень высокая безопасность для приложения, вы можете предпринять шаги для обеспечения того, чтобы токен доступа пользователя не был создан с помощью вредоносного ПО или пользователя, который был обманут, есть пример, показывающий защиту от CSRF в Server side Authentication, а также поток reauthentication, который вы можете использовать

+2
источник

Я предполагаю, что вы используете для этого facebook sdk, если поэтому facebook sdk заботится о безопасности для вас, и вам не нужно беспокоиться о вещи. Предполагая, что вы получаете доступ к api без sdk, тогда необходимо отметить две вещи:

1) токен Auth истекает часто (facebook прилагает большие усилия, чтобы гарантировать, что пользователь защищен)

2) Выполнение запроса с помощью только токена авторизации недостаточно, есть некоторые другие параметры, которые не могут быть обмануты, особенно если вы делаете эту серверную сторону, поскольку добавлен дополнительный уровень, который fb вызывает аутентификацию потока сервера

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

https://developers.facebook.com/docs/authentication/

Короче говоря, это безопасно.

+1
источник

Посмотрите другие вопросы по меткам или Задайте вопрос