File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2828
2929logger = 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
3246def 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 }
You can’t perform that action at this time.
0 commit comments