Query parameter values are truncated at a second equals sign
Maintainer antworten meist innerhalb von 2 Tagen
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 88/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- javascript
Rechercherichtung
Beginne mit src/core/router/util.js und der bestehenden Jest-Testsuite für Router-Hilfsfunktionen und führe dann die gemeldete parseQuery-Reproduktion aus. Überprüfe, dass beim Dekodieren nur das erste Gleichheitszeichen einen Parameter trennt, während Plus-zu-Leerzeichen-Konvertierung, leere Werte und parameterlose Parameter unverändert bleiben; der Regressionstest sollte mit erhaltenen eingebetteten Gleichheitszeichen bestehen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Bug Report
Current behavior
Query parameter values are truncated at the second equals sign. On develop f34374b7423340e5ddec81c8ff565c26cc056fb5, parseQuery('?id=a=b=c&other=ok') returns {id: 'a', other: 'ok'} instead of preserving a=b=c.
The same parser is used by both hash and HTML5 history, so route queries exposed to plugins are affected. Values containing a literal equals sign, including padded encoded data, lose information.
Reproduction
From the source checkout:
import { parseQuery } from './src/core/router/util.js';
console.log(parseQuery('?id=a=b=c&other=ok'));
// { id: 'a', other: 'ok' }
Expected behavior
Only the first equals sign separates the parameter name from its value. Remaining equals signs should stay in the value. Existing decoding, plus-to-space conversion, empty values and valueless parameters should retain their behavior.
Environment
Docsify 5.0.0 develop source, Node.js on macOS. Reproduced directly and with a failing Jest regression in the existing router utility suite.
- Vorherrschende Sprache
- JavaScript
- Sterne
- 31.5k
- Forks
- 5.8k
- Ø Merge
- 2 T. 14 Std.
- Gemergte PRs (30 T.)
- 5
Entwicklungsumgebung
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus docsifyjs/docsify
-
bug Triage
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 66/100
Maintainer antworten meist innerhalb von 2 Tagen
-
Cached AJAX responses lose status metadata exposed through vm.route.responseEvtl. vergeben @xu91102 hat das vor 22 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 2 Tagen
-
In the Edge browser, the character `{docsify-updated}` is not replacedEvtl. wieder frei @AmanUllah687 hat das vor 75 Tagen übernommen, und es ist kein Pull Request offen. Offenwait for information
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
docsifyjs/docsify#2681 · 11 Kommentare ·
Maintainer antworten meist innerhalb von 2 Tagen
-
feature request Triage
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 38/100
docsifyjs/docsify#2643 · 5 Kommentare ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Is it possible not to push unnecessary state when clicking an <a> element?Evtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offenneeds discussion
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
Maintainer antworten meist innerhalb von 2 Tagen
Alle Issues in docsifyjs/docsify
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 79/100
SACGF/variantgrid#2341 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
Unsampled pageload span is profiled when profileLifecycle is 'trace' (browser UI profiling)Evtl. vergeben @Jxxunnn hat das heute übernommen. OffenBrowser Waiting for: Product Owner
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
getsentry/sentry-javascript#25497 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
external-plugin needs-review:HIGH ready-for-review
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
github/awesome-copilot#5162 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag