Wie genau funktioniert die auf Hash-Fragmenten basierende Sicherheit?

Ich lerne OAuth 2.0 und kann das Zugriffstoken in @ nicht sicherimplicit grant flow. Es gibt einige Thesen in der Spezifikation und einige überarbeitete SO-Antworten, die sich widersprechen. Könnte jemand das klären? Zitate aus SO-Antworten und Spezifikationen, die mich verwirren:

(From spec) Umleitungs-URI zur Übermittlung des Zugriffstokens an den Client. Das Zugriffstoken kann dem Ressourceneigentümer oder anderen Anwendungen mit Zugriff auf den Benutzeragenten des Ressourceneigentümers zur Verfügung gestellt werden. (From spec) Anmeldeinformationen für Zugriffstoken (sowie alle Attribute für vertrauliche Zugriffstoken) MÜSSEN während der Übertragung und Speicherung vertraulich behandelt und nur vom Autorisierungsserver, den Ressourcenservern, für die das Zugriffstoken gültig ist, und dem Client, an den sie gesendet werden, gemeinsam genutzt werden Das Zugriffstoken wird ausgegeben. Anmeldeinformationen für Zugriffstoken MÜSSEN nur über TLS übertragen werden.(Vonakzeptiert und positiv bewertet SO answer) Im impliziten Ablauf wird das Zugriffstoken als Hash-Fragment übergeben, nur die Browser kennen das Hash-Fragment. Browser übergeben das Hash-Fragment direkt an die Ziel-Webseite / den Umleitungs-URI, der die Webseite des Clients darstellt (Hash-Fragmente sind nicht Teil der HTTP-Anforderung). Sie müssen das Hash-Fragment daher mit Javascript lesen. Hash-Fragment kann nicht von zwischengeschalteten Servern / Routern abgefangen werden (dies ist wichtig).

Meine Frage

P1 gibt an, dass das über die Umleitungs-URI an den Client gelieferte Token und P2 an, dass der Übermittlungskanal TLS-ed sein MUSS. Aber P3 sagt, dasshash Fragment sendet nicht an das Netzwerk. Wie erreicht das Zugriffstoken den Client, wenn es nicht sendet, weil es sich um ein Hash-Fragment handelt? Wie auch immer, es muss vom Netzwerk gesendet werden, nicht wahr? Oder macht das Senden von Token mit Umleitungs-URI etwas Magie ohne Netzwerk-Deals?

Die einzig wahrscheinliche Erklärung - Unter der Haube des Browsers wird nur ein Teil der URL gesendet, der kein Hash ist. Nach dem Laden einer neuen Seite wird nur ein Hash-Fragment eingefügt und JS zur Verfügung gestellt. Wenn ich recht habe, kann ich immer noch nicht verstehen, warum wir nicht einfach ein Token mit @ sendzuverlässiger, gesicherter HTTPS-Kanal als Antwortparameter?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage