sdk/python/HTTP Clients/PyUrllibParse
HTTP Clients

PyUrllibParse

The urllib.parse module for URL parsing and building. urljoin is commonly used to build request URLs — when the base is user-controlled, attackers can redirect to arbitrary hosts. urlparse can be used as a sanitizer for SSRF if the netloc is validated.

2 sanitizers

Sanitizers

.quote()Sanitizer
#
Signature
urllib.parse.quote(string, safe='/', ...) -> str

Percent-encodes a URL component. Sanitizer when used on user input before URL concat.

tracks:return
.quote_plus()Sanitizer
#
Signature
urllib.parse.quote_plus(string, safe='', ...) -> str

Like quote but encodes spaces as +. Sanitizer for query strings.

tracks:return

Other Methods

.urlparse()Neutral
#
Signature
urllib.parse.urlparse(urlstring: str, scheme='', allow_fragments=True) -> ParseResult

Parses a URL into components. Building block for SSRF sanitization (check netloc).

tracks:return
.urljoin()Neutral
#
Signature
urllib.parse.urljoin(base: str, url: str, allow_fragments=True) -> str

Joins a base URL and a relative URL. Neutral; output often reaches HTTP sinks.

tracks:return

Fully-Qualified Names

FQNField
urllib.parsefqns[0]

Wrong FQN → 0 findings. Verify with: change fqns to garbage → must produce 0 results.

Import

rule.py
from codepathfinder.go_rule import PyUrllibParse