Skip to content

Commit cef2743

Browse files
committed
Updated utils.py to log only safe headers that are useful for debugging
1 parent c0e884f commit cef2743

1 file changed

Lines changed: 22 additions & 1 deletion

File tree

application/utils.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,20 @@
2828

2929
logger = logging.getLogger(__name__)
3030

31+
# chat-gpt identified headers that are safe to log
32+
allowed_headers = frozenset({
33+
'Host',
34+
'User-Agent',
35+
'X-Forwarded-For',
36+
'X-Real-IP',
37+
'Content-Type',
38+
'Content-Length',
39+
'Accept',
40+
'Accept-Encoding',
41+
'Accept-Language',
42+
'Connection'
43+
})
44+
3145

3246
def int_to_bytes(num):
3347
return bytes([num])
@@ -105,7 +119,7 @@ def get_headers_dict_from_str(headers_str):
105119
header_name, header_value = line.split(': ', 1)
106120
headers[header_name] = header_value
107121

108-
logger.debug('Extracted HTTP headers, headers = %s', headers)
122+
logger.debug('Extracted HTTP headers, headers = %s', filtered_headers_to_log(headers))
109123

110124
return headers
111125

@@ -157,3 +171,10 @@ def mask_email(email: str) -> str:
157171
return f'{masked}@{domain}'
158172
except Exception:
159173
return '***@***' # Fallback for any parsing errors
174+
175+
176+
def filtered_headers_to_log(headers: dict) -> dict:
177+
if headers is None:
178+
return {}
179+
180+
return {k: v for k, v in headers.items() if k in allowed_headers}

0 commit comments

Comments
 (0)