@@ -136,3 +136,76 @@ def test_session_list_sorted_or_not(self):
136136 self .panel .generate_stats (self .request , response )
137137 panel_stats = self .panel .get_stats ()
138138 self .assertEqual (panel_stats ["session" ], data )
139+
140+ def test_sensitive_post_data_sanitized (self ):
141+ """Test that sensitive POST data is redacted."""
142+ self .request .POST = {"username" : "testuser" , "password" : "secret123" }
143+ response = self .panel .process_request (self .request )
144+ self .panel .generate_stats (self .request , response )
145+
146+ # Check that password is redacted in panel content
147+ content = self .panel .content
148+ self .assertIn ("username" , content )
149+ self .assertIn ("testuser" , content )
150+ self .assertIn ("password" , content )
151+ self .assertNotIn ("secret123" , content )
152+ self .assertIn ("********************" , content )
153+
154+ def test_sensitive_get_data_sanitized (self ):
155+ """Test that sensitive GET data is redacted."""
156+ self .request .GET = {"api_key" : "abc123" , "q" : "search term" }
157+ response = self .panel .process_request (self .request )
158+ self .panel .generate_stats (self .request , response )
159+
160+ # Check that api_key is redacted in panel content
161+ content = self .panel .content
162+ self .assertIn ("api_key" , content )
163+ self .assertNotIn ("abc123" , content )
164+ self .assertIn ("********************" , content )
165+ self .assertIn ("q" , content )
166+ self .assertIn ("search term" , content )
167+
168+ def test_sensitive_cookie_data_sanitized (self ):
169+ """Test that sensitive cookie data is redacted."""
170+ self .request .COOKIES = {"session_id" : "abc123" , "auth_token" : "xyz789" }
171+ response = self .panel .process_request (self .request )
172+ self .panel .generate_stats (self .request , response )
173+
174+ # Check that auth_token is redacted in panel content
175+ content = self .panel .content
176+ self .assertIn ("session_id" , content )
177+ self .assertIn ("abc123" , content )
178+ self .assertIn ("auth_token" , content )
179+ self .assertNotIn ("xyz789" , content )
180+ self .assertIn ("********************" , content )
181+
182+ def test_sensitive_session_data_sanitized (self ):
183+ """Test that sensitive session data is redacted."""
184+ self .request .session = {"user_id" : 123 , "auth_token" : "xyz789" }
185+ response = self .panel .process_request (self .request )
186+ self .panel .generate_stats (self .request , response )
187+
188+ # Check that auth_token is redacted in panel content
189+ content = self .panel .content
190+ self .assertIn ("user_id" , content )
191+ self .assertIn ("123" , content )
192+ self .assertIn ("auth_token" , content )
193+ self .assertNotIn ("xyz789" , content )
194+ self .assertIn ("********************" , content )
195+
196+ def test_querydict_sanitized (self ):
197+ """Test that sensitive data in QueryDict objects is properly redacted."""
198+ query_dict = QueryDict ("username=testuser&password=secret123&token=abc456" )
199+ self .request .GET = query_dict
200+ response = self .panel .process_request (self .request )
201+ self .panel .generate_stats (self .request , response )
202+
203+ # Check that sensitive data is redacted in panel content
204+ content = self .panel .content
205+ self .assertIn ("username" , content )
206+ self .assertIn ("testuser" , content )
207+ self .assertIn ("password" , content )
208+ self .assertNotIn ("secret123" , content )
209+ self .assertIn ("token" , content )
210+ self .assertNotIn ("abc456" , content )
211+ self .assertIn ("********************" , content )
0 commit comments