urlsplit manufactures hostnames because it strips off tabs before validating them
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 35.9k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Bug report
Bug description:
import urllib.parse
# prints "abcxyz.test"
print(urllib.parse.urlsplit("http://abc\txyz.test/").netloc)
Current urlsplit is implemented according to this spec:
https://url.spec.whatwg.org/#concept-basic-url-parser
The spec does say in item 3 to strip tabs, but I believe there's a bug in the specification (perhaps they wanted to say leading/trailing whitespace) because the item 7 in host parsing says
If asciiDomain contains a forbidden domain code point, domain-invalid-code-point validation error, return failure.
, and tab is listed as a "forbidden domain code point". If tabs are stripped from the entire input before any other work is done, checking for tabs in host names wouldn't make much sense.
I created a bug in the specification project, so maybe they will provide some guidance later on.
https://github.com/whatwg/url/issues/829
CPython versions tested on:
3.10
Operating systems tested on:
Linux, Windows
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez au point d’entrée urllib.parse.urlsplit et exécutez le reproducer de l’issue pour confirmer comment une tabulation incorporée modifie le netloc. Consultez le WHATWG URL issue 829 lié pour vous orienter concernant le conflit de spécification ; le travail est terminé lorsque les tabulations dans le nom d’hôte ne sont pas silencieusement transformées en un nom d’hôte différent.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- networking
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100