python / python/cpython

urllib.parse.parse_qs should not parse a query string containing illegal characters

Aberta
#135,523 2 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

stdlib type-bug
Linguagem predominante
Python
Estrelas
77.2k
Forks
36k
Métricas de merge de PRs
Métricas de PR pendentes

Descrição

Bug report

Bug description:

urllib.parse.parse_qsl will happily parse a query string containing '#'.

from urllib.parse import parse_qsl
parse_qsl('foo=#', strict_parsing=True)

Output is [('foo', '#')] .

But 'foo=#' is an invalid query string according to RFC 3986. Similarly, '[', and ']' are excluded from the set of valid query characters, but parse_qsl parses strings like 'foo=[' and 'foo=]' . In the absence of any allocation of responsibility, this looks like a bug to me.

CPython versions tested on:

3.13

Operating systems tested on:

macOS

Linked PRs
  • gh-152530

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece em urllib.parse.parse_qsl e revise como os caracteres da consulta são validados em relação à RFC 3986. Verifique primeiro os testes de parsing existentes e o PR vinculado gh-152530; considera-se concluído quando caracteres ilegais como '#', '[' e ']' são tratados de forma consistente com o comportamento acordado e cobertos por testes.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
python
Domínio
backend-api-design
Tipo de issue
Bug
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Claramente especificada
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.