Skip to content
Open
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 14 additions & 8 deletions Lib/urllib/request.py
Original file line number Diff line number Diff line change
Expand Up @@ -1838,8 +1838,8 @@ def getproxies_environment():
proxies[proxy_name] = value
# CVE-2016-1000110 - If we are running as CGI script, forget HTTP_PROXY
# (non-all-lowercase) as it may be set from the web server by a "Proxy:"
# header from the client
# If "proxy" is lowercase, it will still be used thanks to the next block
# header from the client.
# The below check it and only accepts the lowercase "_proxy"
if 'REQUEST_METHOD' in os.environ:
proxies.pop('http', None)
for name, value, proxy_name in environment:
Expand Down Expand Up @@ -2069,7 +2069,7 @@ def getproxies():
"""
return getproxies_environment() or getproxies_registry()

def proxy_bypass_registry(host):
def getproxy_bypass_registry():
try:
import winreg
except ImportError:
Expand All @@ -2087,20 +2087,26 @@ def proxy_bypass_registry(host):
return False
if not proxyEnable or not proxyOverride:
return False
return _proxy_bypass_winreg_override(host, proxyOverride)

def proxy_bypass(host):
return proxyOverride

def proxy_bypass_registry(host, proxyOverride=None):
if proxyOverride:= proxyOverride or getproxy_bypass_registry():
return _proxy_bypass_winreg_override(host, proxyOverride)
return False

def proxy_bypass(host, env_proxies=None, proxyOverride=None):
"""Return True, if host should be bypassed.

Checks proxy settings gathered from the environment, if specified,
or the registry.

"""
proxies = getproxies_environment()
if proxies:
if proxies:= env_proxies or getproxies_environment():
return proxy_bypass_environment(host, proxies)
else:
return proxy_bypass_registry(host)
proxyOverride = proxyOverride or getproxy_bypass_registry()
return proxy_bypass_registry(host, proxyOverride)

else:
# By default use environment variables
Expand Down
Loading