| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | """Proxy requests to avoid SSRF"""import osfrom httpx import get as _getfrom httpx import head as _headfrom httpx import options as _optionsfrom httpx import patch as _patchfrom httpx import post as _postfrom httpx import put as _putfrom requests import delete as _deleteSSRF_PROXY_HTTP_URL = os.getenv('SSRF_PROXY_HTTP_URL', '')SSRF_PROXY_HTTPS_URL = os.getenv('SSRF_PROXY_HTTPS_URL', '')requests_proxies = {    'http': SSRF_PROXY_HTTP_URL,    'https': SSRF_PROXY_HTTPS_URL} if SSRF_PROXY_HTTP_URL and SSRF_PROXY_HTTPS_URL else Nonehttpx_proxies = {    'http://': SSRF_PROXY_HTTP_URL,    'https://': SSRF_PROXY_HTTPS_URL} if SSRF_PROXY_HTTP_URL and SSRF_PROXY_HTTPS_URL else Nonedef get(url, *args, **kwargs):    return _get(url=url, *args, proxies=httpx_proxies, **kwargs)def post(url, *args, **kwargs):    return _post(url=url, *args, proxies=httpx_proxies, **kwargs)def put(url, *args, **kwargs):    return _put(url=url, *args, proxies=httpx_proxies, **kwargs)def patch(url, *args, **kwargs):    return _patch(url=url, *args, proxies=httpx_proxies, **kwargs)def delete(url, *args, **kwargs):    if 'follow_redirects' in kwargs:        if kwargs['follow_redirects']:            kwargs['allow_redirects'] = kwargs['follow_redirects']        kwargs.pop('follow_redirects')    if 'timeout' in kwargs:        timeout = kwargs['timeout']        if timeout is None:            kwargs.pop('timeout')        elif isinstance(timeout, tuple):            # check length of tuple            if len(timeout) == 2:                kwargs['timeout'] = timeout            elif len(timeout) == 1:                kwargs['timeout'] = timeout[0]            elif len(timeout) > 2:                kwargs['timeout'] = (timeout[0], timeout[1])        else:            kwargs['timeout'] = (timeout, timeout)    return _delete(url=url, *args, proxies=requests_proxies, **kwargs)def head(url, *args, **kwargs):    return _head(url=url, *args, proxies=httpx_proxies, **kwargs)def options(url, *args, **kwargs):    return _options(url=url, *args, proxies=httpx_proxies, **kwargs)
 |