url: forbid lt and gt in url host code point

As per the recent changes in whatwg/url spec. lt and gt are also added
in the list of forbidden hostCodePoint list.

PR-URL: https://github.com/nodejs/node/pull/33328
Refs: https://github.com/whatwg/url/pull/459
Refs: https://github.com/nodejs/node/issues/33315
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
This commit is contained in:
Yash Ladha authored and Ruben Bridgewater committed 2020-05-23 21:36:51 +02:00
1 parent 32b641e528
commit 9be51ee9a1
2 files changed
+64 -16

No files matched your search

+2 -1
View File
@@ -206,7 +206,8 @@ CHAR_TEST(8, IsForbiddenHostCodePoint,
ch == '\0' || ch == '\t' || ch == '\n' || ch == '\r' ||
ch == ' ' || ch == '#' || ch == '%' || ch == '/' ||
ch == ':' || ch == '?' || ch == '@' || ch == '[' ||
ch == '\\' || ch == ']')
ch == '<' || ch == '>' || ch == '\\' || ch == ']' ||
ch == '^')
// https://url.spec.whatwg.org/#windows-drive-letter
TWO_CHAR_STRING_TEST(8, IsWindowsDriveLetter,
+62 -15
View File
@@ -4481,21 +4481,6 @@
"search": "",
"hash": ""
},
{
"input": "sc://\u001F!\"$&'()*+,-.;<=>^_`{|}~/",
"base": "about:blank",
"href": "sc://%1F!\"$&'()*+,-.;<=>^_`{|}~/",
"origin": "null",
"protocol": "sc:",
"username": "",
"password": "",
"host": "%1F!\"$&'()*+,-.;<=>^_`{|}~",
"hostname": "%1F!\"$&'()*+,-.;<=>^_`{|}~",
"port": "",
"pathname": "/",
"search": "",
"hash": ""
},
{
"input": "sc://\u0000/",
"base": "about:blank",
@@ -4649,6 +4634,68 @@
"search": "",
"hash": ""
},
"Forbidden host code points",
{
"input": "http://a<b",
"base": "about:blank",
"failure": true
},
{
"input": "http://a>b",
"base": "about:blank",
"failure": true
},
{
"input": "http://a^b",
"base": "about:blank",
"failure": true
},
{
"input": "non-special://a<b",
"base": "about:blank",
"failure": true
},
{
"input": "non-special://a>b",
"base": "about:blank",
"failure": true
},
{
"input": "non-special://a^b",
"base": "about:blank",
"failure": true
},
"Allowed host code points",
{
"input": "http://\u001F!\"$&'()*+,-.;=_`{|}~/",
"base": "about:blank",
"href": "http://\u001F!\"$&'()*+,-.;=_`{|}~/",
"origin": "http://\u001F!\"$&'()*+,-.;=_`{|}~",
"protocol": "http:",
"username": "",
"password": "",
"host": "\u001F!\"$&'()*+,-.;=_`{|}~",
"hostname": "\u001F!\"$&'()*+,-.;=_`{|}~",
"port": "",
"pathname": "/",
"search": "",
"hash": ""
},
{
"input": "sc://\u001F!\"$&'()*+,-.;=_`{|}~/",
"base": "about:blank",
"href": "sc://%1F!\"$&'()*+,-.;=_`{|}~/",
"origin": "null",
"protocol": "sc:",
"username": "",
"password": "",
"host": "%1F!\"$&'()*+,-.;=_`{|}~",
"hostname": "%1F!\"$&'()*+,-.;=_`{|}~",
"port": "",
"pathname": "/",
"search": "",
"hash": ""
},
"# Hosts and percent-encoding",
{
"input": "ftp://example.com%80/",