Как именно работает защита на основе хеш-фрагментов?

Я изучаю OAuth 2.0 и не могу найти способ защиты токена доступа внеявный поток грантов, В спецификации есть несколько тезисов, а некоторые SO-ответы, на которые проголосовали, выглядят противоречащими друг другу. Может кто-нибудь прояснить это? Цитаты из SO ответов и спецификации, которые меня смущают:

(Из спецификации) URI перенаправления, используемый для доставки токена доступа клиенту. Маркер доступа может быть предоставлен владельцу ресурса или другим приложениям, имеющим доступ к пользовательскому агенту владельца ресурса.(Из спецификации) Учетные данные токена доступа (а также любые атрибуты токена конфиденциального доступа) ДОЛЖНЫ быть конфиденциальными при передаче и хранении и должны использоваться только сервером авторизации, серверами ресурсов, для которых действителен токен доступа, и клиентом, для которого выдан токен доступа. Полномочия токена доступа ДОЛЖНЫ передаваться только с использованием протокола TLS.(Отпринят и одобрен SO ответ) В неявном потоке токен доступа передается как хеш-фрагмент, только браузеры знают о хеш-фрагменте. Браузеры передают фрагмент хеша непосредственно на целевую веб-страницу / URI перенаправления, который является веб-страницей клиента (фрагмент хеша не является частью HTTP-запроса), поэтому вы должны прочитать фрагмент хеша, используя Javascript. Хеш-фрагмент не может быть перехвачен промежуточными серверами / маршрутизаторами (это важно).

Мой вопрос:

P1 говорит, что токен доставлен клиенту через URI перенаправления, а P2 говорит, что канал доставки ДОЛЖЕН быть TLS-ed. Но P3 говорит, чтофрагмент хеша не отправляется в сеть, Как токен доступа достигает клиента, если он не отправляет, потому что это хеш-фрагмент? Во всяком случае, это должно быть отправлено по сети, не так ли? Или отправка токена с URI перенаправления делает магию без сетевых сделок?

Единственное вероятное объяснение - под капотом браузер отправляет только нехэш-часть url по сети, а после загрузки новой страницы просто вставляет хеш-фрагмент и делает его доступным для JS. Если я прав, я до сих пор не могу понять, почему бы нам просто не отправить токен снадежный, защищенный канал HTTPS в качестве параметра ответа?

Ответы на вопрос(1)

Ваш ответ на вопрос