@@ -22,34 +22,45 @@ def event1(sid, data): # $ requestHandler routedParameter=data
2222 ensure_tainted (data ) # $ tainted
2323 res = sio .call ("e1" , sid = sid )
2424 ensure_tainted (res ) # $ tainted
25- sio .emit ("e2" , "hi" , to = sid , callback = lambda x : ensure_tainted (x )) # $ tainted
26- sio .send ("hi" , to = sid , callback = lambda x : ensure_tainted (x )) # $ tainted
25+ sio .emit ("e2" , "hi" , to = sid , callback = lambda x : ensure_tainted (x )) # $ tainted $ requestHandler routedParameter=x
26+ sio .send ("hi" , to = sid , callback = lambda x : ensure_tainted (x )) # $ tainted $ requestHandler routedParameter=x
2727
2828class MyNamespace (socketio .Namespace ):
2929 def on_event2 (self , sid , data ): # $ requestHandler routedParameter=data
3030 ensure_not_tainted (self , sid )
31- ensure_tainted (data )
31+ ensure_tainted (data ) # $ tainted
3232 res = self .call ("e1" , sid = sid )
3333 ensure_tainted (res ) # $ tainted
34- self .emit ("e2" , "hi" , to = sid , callback = lambda x : ensure_tainted (x )) # $ tainted
35- self .send ("hi" , to = sid , callback = lambda x : ensure_tainted (x )) # $ tainted
34+ self .emit ("e2" , "hi" , to = sid , callback = lambda x : ensure_tainted (x )) # $ tainted $ requestHandler routedParameter=x
35+ self .send ("hi" , to = sid , callback = lambda x : ensure_tainted (x )) # $ tainted $ requestHandler routedParameter=x
3636
3737sio .register_namespace (MyNamespace ("/ns" ))
3838
3939asio = socketio .AsyncServer (async_mode = 'asgi' )
4040
4141@asio .event
42- async def event3 (sid , data ): # $ requestHandler routedParameter=sid routedParameter= data
42+ async def event3 (sid , data ): # $ requestHandler routedParameter=data
4343 ensure_not_tainted (sid )
4444 ensure_tainted (data ) # $ tainted
4545 res = await asio .call ("e1" , sid = sid )
4646 ensure_tainted (res ) # $ tainted
47- await asio .emit ("e2" , "hi" , to = sid , callback = lambda x : ensure_tainted (x )) # $ tainted
48- await asio .send ("hi" , to = sid , callback = lambda x : ensure_tainted (x )) # $ tainted
47+ await asio .emit ("e2" , "hi" , to = sid , callback = lambda x : ensure_tainted (x )) # $ tainted $ requestHandler routedParameter=x
48+ await asio .send ("hi" , to = sid , callback = lambda x : ensure_tainted (x )) # $ tainted $ requestHandler routedParameter=x
49+
50+ class MyAsyncNamespace (socketio .AsyncNamespace ):
51+ async def on_event4 (self , sid , data ): # $ requestHandler routedParameter=data
52+ ensure_not_tainted (self , sid )
53+ ensure_tainted (data ) # $ tainted
54+ res = await self .call ("e1" , sid = sid )
55+ ensure_tainted (res ) # $ tainted
56+ await self .emit ("e2" , "hi" , to = sid , callback = lambda x : ensure_tainted (x )) # $ tainted $ requestHandler routedParameter=x
57+ await self .send ("hi" , to = sid , callback = lambda x : ensure_tainted (x )) # $ tainted $ requestHandler routedParameter=x
58+
59+ asio .register_namespace (MyAsyncNamespace ("/ns" ))
4960
5061if __name__ == "__main__" :
5162
52- if "--async" in sys .argv :
63+ if "--async" in sys .argv : # $ threatModelSource[commandargs]=sys.argv
5364 import uvicorn
5465 app = socketio .ASGIApp (asio )
5566 uvicorn .run (app , host = '127.0.0.1' , port = 8000 )
0 commit comments