Explorar o código

Forbid | in URL hosts

crowlkats %!s(int64=4) %!d(string=hai) anos
pai
achega
f0d1c7ea22
Modificáronse 2 ficheiros con 47 adicións e 0 borrados
  1. 2 0
      url/src/host.rs
  2. 45 0
      url/tests/urltestdata.json

+ 2 - 0
url/src/host.rs

@@ -107,6 +107,7 @@ impl Host<String> {
                     | ']'
                     | '^'
                     | '\u{007F}'
+                    | '|'
             )
         };
 
@@ -146,6 +147,7 @@ impl Host<String> {
                     | '\\'
                     | ']'
                     | '^'
+                    | '|'
             )
         };
 

+ 45 - 0
url/tests/urltestdata.json

@@ -4707,6 +4707,11 @@
     "base": "about:blank",
     "failure": true
   },
+  {
+    "input": "sc://a|b/",
+    "base": "about:blank",
+    "failure": true
+  },
   "Forbidden host codepoints: tabs and newlines are removed during preprocessing",
   {
     "input": "foo://ho\u0009st/",
@@ -4931,6 +4936,11 @@
     "base": "about:blank",
     "failure": true
   },
+  {
+    "input": "http://a|b/",
+    "base": "about:blank",
+    "failure": true
+  },
   {
     "input": "http://a\u007Fb/",
     "base": "about:blank",
@@ -5200,6 +5210,11 @@
     "base": "about:blank",
     "failure": true
   },
+  {
+    "input": "http://ho%7Cst/",
+    "base": "about:blank",
+    "failure": true
+  },
   {
     "input": "http://ho%7Fst/",
     "base": "about:blank",
@@ -5777,6 +5792,36 @@
     "base": "about:blank",
     "failure": true
   },
+  {
+    "input": "file://%43%7C",
+    "base": "about:blank",
+    "failure": true
+  },
+  {
+    "input": "file://%43|",
+    "base": "about:blank",
+    "failure": true
+  },
+  {
+    "input": "file://C%7C",
+    "base": "about:blank",
+    "failure": true
+  },
+  {
+    "input": "file://%43%7C/",
+    "base": "about:blank",
+    "failure": true
+  },
+  {
+    "input": "https://%43%7C/",
+    "base": "about:blank",
+    "failure": true
+  },
+  {
+    "input": "asdf://%43|/",
+    "base": "about:blank",
+    "failure": true
+  },
   {
     "input": "asdf://%43%7C/",
     "base": "about:blank",