@@ -136,3 +136,76 @@ def test_session_list_sorted_or_not(self):
136
136
self .panel .generate_stats (self .request , response )
137
137
panel_stats = self .panel .get_stats ()
138
138
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