From 2722f4fd764657b1f059c66aa75a879acd56abca Mon Sep 17 00:00:00 2001 From: "Marcus R. Matos" Date: Fri, 3 Apr 2020 20:15:50 -0500 Subject: #3885 handle hyphens in domain name, enhance validation checks, linter updates --- mitmproxy/net/check.py | 4 +++- test/mitmproxy/net/test_check.py | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/mitmproxy/net/check.py b/mitmproxy/net/check.py index 90600195..32e733af 100644 --- a/mitmproxy/net/check.py +++ b/mitmproxy/net/check.py @@ -15,7 +15,9 @@ we'll go with the least restrictive rules while still providing a sanity check. """ # label regex: in total between 4 and 255 chars, tld 2 to 63 chars, each label 1 to 63 chars -_label_valid = re.compile(br"^(?=.{4,255}$)([A-Z0-9_-]([A-Z0-9_-]{0,61}[A-Z0-9_-])?\.){1,126}[A-Z0-9][A-Z0-9-]{0,61}[A-Z0-9]$", re.IGNORECASE) +_label_valid = re.compile( + br"^(?=.{4,255}$)([A-Z0-9_-]([A-Z0-9_-]{0,61}[A-Z0-9_-])?\.)" + br"{1,126}[A-Z0-9][A-Z0-9-]{0,61}[A-Z0-9]$", re.IGNORECASE) _host_valid = re.compile(br"[A-Z0-9\-_]{1,63}$", re.IGNORECASE) diff --git a/test/mitmproxy/net/test_check.py b/test/mitmproxy/net/test_check.py index e9258d7c..7def75fd 100644 --- a/test/mitmproxy/net/test_check.py +++ b/test/mitmproxy/net/test_check.py @@ -36,7 +36,7 @@ def test_is_valid_host(): assert not check.is_valid_host(b'!.example.com') # Every label must be between 1 and 63 chars - #assert not check.is_valid_host('.tld') + assert not check.is_valid_host(b'.tld') assert check.is_valid_host(b'x' * 1 + b'.tld') assert check.is_valid_host(b'x' * 30 + b'.tld') assert not check.is_valid_host(b'x' * 64 + b'.tld') @@ -55,7 +55,7 @@ def test_is_valid_host(): assert not check.is_valid_host(b'a._example_') assert not check.is_valid_host(b'a.example_') - # Misc Dash/Hyphen/Minus Test Cases + # Misc Dash/Hyphen/Minus Test Cases assert check.is_valid_host(b'-example') assert check.is_valid_host(b'-example_') assert check.is_valid_host(b'example-') -- cgit v1.2.3