Предотвращение CSRF
CSRF — Сross Site Request Forgery, межсайтовая подделка запроса. Это прием позволяющий выполнить переход по специальной ссылки (например, с помощью: специально составленной злоумышленником, картинки и т.п.) на сервер с установленной сессией пользователя.
CSRF атака на URI обратного вызова потребителя
Злоумышленник может выполнить CSRF атаку на URI обратного вызова потребителя с целью подменить авторизационный код на свой собственный. Это может привести к передачи конфиденциальных защищенному ресурсу который контролирует злоумышленник. Например: сохранить информацию об банковском счете в защищенный ресурс который контролирует атакующий, или привязать аккаунт социальной сети злоумышленника к аккаунты жертвы, и т.п.
Потребитель должен реализовать защиту от CSRF атаки на URI обратного вызова. Обычно для этого URI обратного вызов требует чтобы все запросы приходящие на него содержали значение, которое привязывает его к браузеру (например, хеш user-agent + session cookie) Потребитель должен использовать параметр state, чтобы передать это значение серверу авторизации. Сервер авторизации вернет это значение назад потребителю. Потребитель проверяет его, и если все верно, то выполняет обмен авторизационного кода на маркер доступа, иначе игнорирует запрос.