2

В разработчиках FB Документах API аутентификации OAuth - в разделе, удостоверяющего личность имеет this note:Каков параметр состояния, используемый в потоке входа в систему Facebook?

Обратите внимание, что вы также можете генерировать свой собственный параметр состояния и использовать его с вашим запросом авторизации, чтобы обеспечить защиту от CSRF.

Не могли бы вы пояснить, в чем смысл этого? Я имею в виду, как использовать параметр состояния, даже если я его сгенерирую? Я кодирую его как часть URL-адреса запроса auth? Какую цель он будет выполнять, даже если бы я это сделал?

ответ

1

Я кодирую его как часть URL-адреса запроса auth?

Да. В этом документе также упоминается here как необязательный параметр URL-кодирования.

Независимо от того, какое значение вы предоставите, оно будет включено в URL-адрес ответа на перенаправление, который возвращает Facebook. Таким образом, вы можете передать какую-то ценность своему серверу.

Какую цель он будет выполнять, даже если бы я это сделал?

Поскольку это значение просто передается между вашим приложением и сервером, вам решать, что, если угодно, сделать с ним. Приведенный пример - CSRF protection. Включив уникальный токен в качестве параметра состояния, вы можете убедиться, что вызов сервера пришел из вашего приложения, а не какой-то вредоносный сайт.

(я не думаю, что это широко используется, хотя, так как требование, чтобы проверить код авторизации или маркер доступа сделки с большинством векторов атак.)

0

Это происходит потому, что FBRLH_statesession не установлен.

<?php 
session_start(); 
$_SESSION['FBRLH_state'] = $_GET['state']; 
... 
Смежные вопросы