@@ -187,3 +187,38 @@ async def websocket_test(websocket: WebSocket): # $ requestHandler routedParamet
187
187
188
188
async for data in websocket .iter_json ():
189
189
ensure_tainted (data ) # $ tainted
190
+
191
+
192
+ # --- Request ---
193
+
194
+ import starlette .requests
195
+ from fastapi import Request
196
+
197
+
198
+ assert Request == starlette .requests .Request
199
+
200
+ @app .websocket ("/req" ) # $ routeSetup="/req"
201
+ async def request_test (request : Request ): # $ requestHandler routedParameter=request
202
+ ensure_tainted (
203
+ request , # $ tainted
204
+
205
+ await request .body (), # $ MISSING: tainted
206
+
207
+ await request .json (), # $ MISSING: tainted
208
+ await request .json ()["key" ], # $ MISSING: tainted
209
+
210
+ # form() returns a FormDat (which is a starlette ImmutableMultiDict)
211
+ await request .form (), # $ MISSING: tainted
212
+ await request .form ()["key" ], # $ MISSING: tainted
213
+ await request .form ().getlist ("key" ), # $ MISSING: tainted
214
+ await request .form ().getlist ("key" )[0 ], # $ MISSING: tainted
215
+ # data in the form could be an starlette.datastructures.UploadFile
216
+ await request .form ()["file" ].filename , # $ MISSING: tainted
217
+ await request .form ().getlist ("file" )[0 ].filename , # $ MISSING: tainted
218
+
219
+ request .cookies , # $ MISSING: tainted
220
+ request .cookies ["key" ], # $ MISSING: tainted
221
+ )
222
+
223
+ async for chunk in request .stream ():
224
+ ensure_tainted (chunk ) # $ MISSING: tainted
0 commit comments