Query parameter values are truncated at a second equals sign
Mantenedores costumam responder em até 8 dias
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 88/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- javascript
Direção de pesquisa
Comece com src/core/router/util.js e a suíte existente de utilitários de router do Jest e, em seguida, execute a reprodução reportada de parseQuery. Verifique se apenas o primeiro sinal de igual separa um parâmetro durante a decodificação, enquanto a conversão de mais para espaço, os valores vazios e os parâmetros sem valor permanecem inalterados; o teste de regressão deve passar com os sinais de igual incorporados preservados.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- JavaScript
- Estrelas
- 31.6k
- Forks
- 5.8k
- Merge médio
- 7d 18h
- PRs com merge (30d)
- 9
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de docsifyjs/docsify
-
Bullet points beginning with inline math: subsequent text formatting not recognised correctlyAbertabug Triage
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 66/100
docsifyjs/docsify#2839 · 1 comentário ·
Mantenedores costumam responder em até 8 dias
-
Cached AJAX responses lose status metadata exposed through vm.route.responseTalvez já em andamento @xu91102 assumiu há 25 dias. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 8 dias
-
In the Edge browser, the character `{docsify-updated}` is not replacedTalvez livre de novo @AmanUllah687 assumiu há 78 dias e não há nenhum pull request aberto. Abertawait for information
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
docsifyjs/docsify#2681 · 11 comentários ·
Mantenedores costumam responder em até 8 dias
-
Nested/Recursive includesAbertafeature request Triage
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 38/100
docsifyjs/docsify#2643 · 5 comentários ·
Mantenedores costumam responder em até 8 dias
-
Is it possible not to push unnecessary state when clicking an <a> element?Talvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Abertaneeds discussion
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
Mantenedores costumam responder em até 8 dias
Todas as issues de docsifyjs/docsify
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 80/100
MagicMirrorOrg/MagicMirror#4310 · 1 comentário · 1 reação ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
bluerobotics/Cockpit-docs#48 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
tc39/proposal-temporal#3332 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
opennextjs/opennextjs-cloudflare#1461 ·
Mantenedores costumam responder em até 1 dia