mirror of
https://github.com/github/codeql.git
synced 2025-12-20 18:56:32 +01:00
Model Flask SessionInterface request parameter
This commit is contained in:
@@ -101,6 +101,19 @@ module Flask {
|
||||
/** Gets a reference to the `flask.request` object. */
|
||||
API::Node request() {
|
||||
result = API::moduleImport(["flask", "flask_restful"]).getMember("request")
|
||||
or
|
||||
result = sessionInterfaceRequestParam()
|
||||
}
|
||||
|
||||
/** Gets a `request` parameter of an implementation of `open_session` in a subclass of `flask.sessions.SessionInterface` */
|
||||
private API::Node sessionInterfaceRequestParam() {
|
||||
result =
|
||||
API::moduleImport("flask")
|
||||
.getMember("sessions")
|
||||
.getMember("SessionInterface")
|
||||
.getASubclass+()
|
||||
.getMember("open_session")
|
||||
.getParameter(1)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
import flask
|
||||
|
||||
class MySessionInterface(flask.sessions.SessionInterface):
|
||||
def open_session(self, app, request):
|
||||
ensure_tainted(request) # $tainted
|
||||
Reference in New Issue
Block a user