Encode des dekodierten Tokens genau einmal auf dem Weg vorgeschaltet

FixAPIService
Verschifft
7. August 2026 um 05:11 UTC
Autor
Kamo
Ausschuss
b10c950

21670e5 routed SocialWebhookController durch UpstreamUris FULLY-PRE-ENCODED-Eintrag Punkt, aber seine URL ist ein Hybrid: "Token" ist ein @PathVariable, so Spring Hände die Handler der DECODED-Wert, während getQueryString() roh ist. Dieser Einstiegspunkt kodiert nichts, was für die rohe Hälfte und falsch für die dekodierte ist - der Spiegel Bild der Doppel-Kodierung dieser gesamten Änderungssatz ist etwa. POST /api/social/webhook/ab%252Ccd kommt als String ab%2Ccd, weitergeleitet wurde wörtlich, und MediaService dekodierte es ein zweites Mal auf ab,cd. Vor 21670e5 es Richtig abgeschnitten, also war dies eine Regression, kein bereits bestehendes Loch. Zero Live Impact: Tokens sind 32 Hex Chars ************ und so encoding-inert, das ist genau, warum nichts gefangen ist. Der Vertrag wurde invertiert obwohl, und das erste Nicht-Hex-Segment hinzugefügt, um diese Route würde beschädigt haben schweigend. Umgeschaltet zum hybriden Einstiegspunkt, der den Pfad einmal durch die gleiche UriComponentsBuilder Aufruf DefaultUriBuilderFactory macht und verlässt die Abfrage unberührt. Das Meta/X Handshake-Verhalten ist unverändert - verifiziert durch die vier bestehende Tests, die immer noch byteikaische Abfragestrings bestätigen. Zwei neue Tests pin den Vertrag mit einem nicht-Hex ab%252Ccd Token, mit und ohne Abfrage. Beide scheitern gegen den vorherigen Einstiegspunkt mit genau ab%2Ccd. Behebt auch zwei Übertreibungen in UpstreamUris Javadoc: - Es beanspruchte die hybride Form PREVENTS a .#" in einem decoded path Variablen Abkürzung die Anfrage am Fragment. Das tut es nicht: **************** aufgeteilt auf "#" genau wie die DefaultUriBuilderFactory hinter dem String Überlastung, so dass das Verhalten so oder so unverändert ist. Unverändert ist der richtige Aufruf auf einer öffentlichen Oberfläche, aber es ist keine Verbesserung und sollte nicht als eine gelesen. Der wahre Grund, warum die Einstiegspunkte aufgeteilt sind, ist das encode-once-vs-not-at-all Unterscheidung oben, das ist jetzt, was der javadoc sagt. - Ein leerer (nicht Null) Abfragestring verwendet, um eine hinterherlaufende .? keine. Gleiche Anfrage unter RFC 3986; in einem Kommentar vermerkt, so dass es nicht verwechselt ist für ein Versehen später. Prosa und Kommentare nur für diese beiden - keine Verhaltensänderung. Suite: 45 Tests, 0 Ausfälle, 0 Fehler.

Alle Änderungen

Wie, was Sie sehen Versand?

Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.

Free Forever startenPreisgestaltung anzeigen