urlsplit manufactures hostnames because it strips off tabs before validating them
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 77.2k
- Forks
- 35.9k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
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
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne beim Einstiegspunkt urllib.parse.urlsplit und führe den Reproducer aus dem Issue aus, um zu bestätigen, wie ein eingebettetes Tab den netloc verändert. Lies das verlinkte WHATWG URL issue 829 als Orientierung für den Konflikt in der Spezifikation; abgeschlossen ist die Aufgabe, wenn Tabs im Hostnamen nicht stillschweigend in einen anderen Hostnamen umgewandelt werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- networking
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 45/100