MCPcopy Index your code
hub / github.com/sqlmapproject/sqlmap / urldecode

Function urldecode

lib/core/common.py:2945–2979  ·  view source on GitHub ↗

URL decodes given value >>> urldecode('AND%201%3E%282%2B3%29%23', convall=True) == 'AND 1>(2+3)#' True >>> urldecode('AND%201%3E%282%2B3%29%23', convall=False) == 'AND 1>(2%2B3)#' True >>> urldecode(b'AND%201%3E%282%2B3%29%23', convall=False) == 'AND 1>(2%2B3)#' True

(value, encoding=None, unsafe="%%?&=;+%s" % CUSTOM_INJECTION_MARK_CHAR, convall=False, spaceplus=True)

Source from the content-addressed store, hash-verified

2943 return retVal
2944
2945def urldecode(value, encoding=None, unsafe="%%?&=;+%s" % CUSTOM_INJECTION_MARK_CHAR, convall=False, spaceplus=True):
2946 """
2947 URL decodes given value
2948
2949 >>> urldecode('AND%201%3E%282%2B3%29%23', convall=True) == 'AND 1>(2+3)#'
2950 True
2951 >>> urldecode('AND%201%3E%282%2B3%29%23', convall=False) == 'AND 1>(2%2B3)#'
2952 True
2953 >>> urldecode(b'AND%201%3E%282%2B3%29%23', convall=False) == 'AND 1>(2%2B3)#'
2954 True
2955 """
2956
2957 result = value
2958
2959 if value:
2960 value = getUnicode(value)
2961
2962 if convall:
2963 result = _urllib.parse.unquote_plus(value) if spaceplus else _urllib.parse.unquote(value)
2964 else:
2965 result = value
2966 charset = set(string.printable) - set(unsafe)
2967
2968 def _(match):
2969 char = decodeHex(match.group(1), binary=False)
2970 return char if char in charset else match.group(0)
2971
2972 if spaceplus:
2973 result = result.replace('+', ' ') # plus sign has a special meaning in URL encoded data (hence the usage of _urllib.parse.unquote_plus in convall case)
2974
2975 result = re.sub(r"%([0-9a-fA-F]{2})", _, result or "")
2976
2977 result = getUnicode(result, encoding or UNICODE_ENCODING)
2978
2979 return result
2980
2981def urlencode(value, safe="%&=-_", convall=False, limit=False, spaceplus=False):
2982 """

Callers 14

crawlFunction · 0.90
_formatInjectionFunction · 0.90
startFunction · 0.90
getPageMethod · 0.90
queryPageMethod · 0.90
retrieveFunction · 0.90
_cleanupOptionsFunction · 0.90
_setRequestParamsFunction · 0.90
initTargetEnvFunction · 0.90
__init__Method · 0.90
paramToDictFunction · 0.85
parseTargetUrlFunction · 0.85

Calls 2

getUnicodeFunction · 0.90
replaceMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…