@@ -187,3 +187,38 @@ async def websocket_test(websocket: WebSocket): # $ requestHandler routedParamet
187187
188188 async for data in websocket .iter_json ():
189189 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