Почему OAuth2 не позволяет содержать идентификатор фрагмента в URI перенаправления? - PullRequest
3 голосов
/ 17 февраля 2020

Согласно OAuth2.0 spe c, URI перенаправления не должен содержать идентификатор фрагмента.

URI конечной точки перенаправления ДОЛЖЕН быть абсолютным URI, как определено [RFC3986] Раздел 4.3. URI конечной точки МОЖЕТ включать компонент запроса в формате «application / x- www-form-urlencoded» (согласно Приложению B) (Раздел 3.4 [RFC3986]), который ДОЛЖЕН сохраняться при добавлении дополнительных параметров запроса. URI конечной точки НЕ ДОЛЖЕН включать компонент фрагмента.

Существуют ли какие-либо конкретные c причины, по которым spe c имеет такие ограничения?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 17 февраля 2020

Фрагмент URL никогда не покидает ваш браузер. Они предназначены для использования внешним интерфейсом (это означает, что если вы поместите фрагмент ha sh в URL в своем браузере и зайдете на него, фрагмент не достигнет конца сервера).

Так что при авторизации сервер перенаправляет через пользовательский агент, фрагмент останется только на пользовательском агенте. С точки зрения OAuth это может привести к нежелательной сложности и уязвимости безопасности. Это дополнительно выделено в Недостаточная проверка URI перенаправления в черновике передового опыта.

0 голосов
/ 17 февраля 2020

Я думаю, что причиной против фрагмента является его использование в Неявном потоке . Поскольку синтаксис части фрагмента URL не стандартизирован, сервер OAuth2 не знает, как добавить свою информацию (access_token и т. Д.) В существующее значение фрагмента URL перенаправления.

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