2015-11-13 8 views
0

В настоящее время я делаю приложение Ionic Cordova, для которого требуется Facebook Auth. Я использую Nic Raboy очень просто plugin для этого. Я сделал диаграмму, чтобы показать, как происходит текущий поток. enter image description hereCordova - Безопасность с использованием клиентской стороны Facebook Oauth

Вопрос: Если какой-то странный путь, противник, знает путь для регистрации на моем сервере (Laravel 5.1); не могут ли они просто get the Facebook ID и просто составить поддельный токен доступа + дополнительные данные и создать пользователя от имени кого-то еще?

Даже если это гипотетически не является проблемой, как я могу заверить, что вход пользователя в систему является фактическим входом пользователя в систему? Поскольку регистрация/вход в систему совпадает с использованием Facebook в качестве аутентификации, я предполагаю, что сервер проверяет какое-то значение. Для меня было бы целесообразно использовать токен доступа к Facebook, но поскольку этот токен часто изменяется, он не кажется мне надежным.

Я также посмотрел на Larvel's Socialite, но кажется, что он работает только с представлениями, которых я, очевидно, не могу, так как я использую сервер как REST-сервер.

Любая помощь приветствуется. Благодарю.

ответ

1

Как правило, ваш сервер будет разговаривать напрямую с FB. Принятый подход будет:

  1. Кордова приложение выполняет рукопожатия и получает FacebookID, в маркер доступа и другие учетные данные из Facebook App.
  2. Приложение Cordova отправляет эту информацию на ваш сервер.
  3. Важно: Сервер использует эти учетные данные и напрямую разговаривает с FB. Таким образом, сервер обычно выполняет проверку, используя токен доступа , чтобы поговорить с FB. Используя токен доступа , он получает информацию от FB a, чтобы убедиться, что все соответствует. Например, он будет проверять, что FacebookID, отправленный из приложения Кордова, совпадает с FacebookID, полученным непосредственно из FB.

Подробнее об этом подходе можно найти here. В прилагаемой ссылке конкретно указано:

The call will need to be server-to-server, since it involves your app secret. 

Этот подход обычно не предусматривает никаких сторонних атак. Даже если кто-то знает ваш идентификатор facebook (который они могут легко получить, поскольку он является общедоступным), они не могут претендовать на то, что вам не хватает маркера доступа (который истекает).

+0

Знал, что мне не хватает чего-то подобного. Большое спасибо. Я попробую сегодня, и примите ваш ответ, если он сработает. Если нет, я просто заплачу еще. – Rad

+0

Немного дополнительной информации, если хотите. Мне удалось достичь желаемого потока, используя [this] (https://github.com/Wizcorp/phonegap-facebook-plugin) плагин Cordova и [this] (http://restfb.com/) бэкэнд-библиотеку. –

 Смежные вопросы

  • Нет связанных вопросов^_^