Skip to content

Commit b173635

Browse files
committed
fix: hash request kwargs and headers correctly
1 parent 835e7ca commit b173635

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

scrapling/spiders/request.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,15 +97,19 @@ def update_fingerprint(
9797
}
9898

9999
if include_kwargs:
100-
kwargs = (key.lower() for key in self._session_kwargs.keys() if key.lower() not in ("data", "json"))
101-
data["kwargs"] = "".join(set(_convert_to_bytes(key).hex() for key in kwargs))
100+
filtered_kwargs = {
101+
key.lower(): str(value)
102+
for key, value in self._session_kwargs.items()
103+
if key.lower() not in ("data", "json")
104+
}
105+
data["kwargs"] = tuple(sorted(filtered_kwargs.items()))
102106

103107
if include_headers:
104108
headers = self._session_kwargs.get("headers") or self._session_kwargs.get("extra_headers") or {}
105109
processed_headers = {}
106110
# Some header normalization
107111
for key, value in headers.items():
108-
processed_headers[_convert_to_bytes(key.lower()).hex()] = _convert_to_bytes(value.lower()).hex()
112+
processed_headers[_convert_to_bytes(key.lower()).hex()] = _convert_to_bytes(value).hex()
109113
data["headers"] = tuple(processed_headers.items())
110114

111115
fp = hashlib.sha1(orjson.dumps(data, option=orjson.OPT_SORT_KEYS), usedforsecurity=False).digest()

0 commit comments

Comments
 (0)