File tree Expand file tree Collapse file tree 2 files changed +18
-0
lines changed
lib/semmle/python/frameworks
test/library-tests/frameworks/flask Expand file tree Collapse file tree 2 files changed +18
-0
lines changed Original file line number Diff line number Diff line change @@ -101,6 +101,19 @@ module Flask {
101
101
/** Gets a reference to the `flask.request` object. */
102
102
API:: Node request ( ) {
103
103
result = API:: moduleImport ( [ "flask" , "flask_restful" ] ) .getMember ( "request" )
104
+ or
105
+ result = sessionInterfaceRequestParam ( )
106
+ }
107
+
108
+ /** Gets a `request` parameter of an implementation of `open_session` in a subclass of `flask.sessions.SessionInterface` */
109
+ private API:: Node sessionInterfaceRequestParam ( ) {
110
+ result =
111
+ API:: moduleImport ( "flask" )
112
+ .getMember ( "sessions" )
113
+ .getMember ( "SessionInterface" )
114
+ .getASubclass + ( )
115
+ .getMember ( "open_session" )
116
+ .getParameter ( 1 )
104
117
}
105
118
106
119
/**
Original file line number Diff line number Diff line change
1
+ import flask
2
+
3
+ class MySessionInterface (flask .sessions .SessionInterface ):
4
+ def open_session (self , app , request ):
5
+ ensure_tainted (request ) # $tainted
You can’t perform that action at this time.
0 commit comments