@@ -17,6 +17,8 @@ import semmle.code.java.frameworks.android.WebView
1717import semmle.code.java.frameworks.JaxWS
1818import semmle.code.java.frameworks.javase.WebSocket
1919import semmle.code.java.frameworks.android.Intent
20+ import semmle.code.java.frameworks.play.PlayController
21+ import semmle.code.java.frameworks.play.PlayHTTPRequestHeader
2022import semmle.code.java.frameworks.spring.SpringWeb
2123import semmle.code.java.frameworks.spring.SpringController
2224import semmle.code.java.frameworks.spring.SpringWebClient
@@ -122,6 +124,18 @@ private class SpringMultipartRequestSource extends RemoteFlowSource {
122124 override string getSourceType ( ) { result = "Spring MultipartRequest getter" }
123125}
124126
127+ class PlayParameterSource extends RemoteFlowSource {
128+ PlayParameterSource ( ) {
129+ exists ( PlayActionQueryParameter p | p = this .asParameter ( ) )
130+ or
131+ exists ( PlayHTTPRequestHeaderMethods m |
132+ m .hasName ( "getQueryString" ) and m .getAParameter ( ) = this .asParameter ( )
133+ )
134+ }
135+
136+ override string getSourceType ( ) { result = "Play Query Parameters" }
137+ }
138+
125139private class SpringMultipartFileSource extends RemoteFlowSource {
126140 SpringMultipartFileSource ( ) {
127141 exists ( MethodAccess ma , Method m |
@@ -245,6 +259,7 @@ private class RemoteTaintedMethod extends Method {
245259 this instanceof HttpServletRequestGetRequestURIMethod or
246260 this instanceof HttpServletRequestGetRequestURLMethod or
247261 this instanceof HttpServletRequestGetRemoteUserMethod or
262+ this instanceof PlayRequestGetMethod or
248263 this instanceof SpringWebRequestGetMethod or
249264 this instanceof SpringRestTemplateResponseEntityMethod or
250265 this instanceof ServletRequestGetBodyMethod or
@@ -264,6 +279,13 @@ private class RemoteTaintedMethod extends Method {
264279 }
265280}
266281
282+ private class PlayRequestGetMethod extends PlayHTTPRequestHeaderMethods {
283+ PlayRequestGetMethod ( ) {
284+ this .hasName ( "Header" ) or
285+ this .hasName ( "getQueryString" )
286+ }
287+ }
288+
267289private class SpringWebRequestGetMethod extends Method {
268290 SpringWebRequestGetMethod ( ) {
269291 exists ( SpringWebRequest swr | this = swr .getAMethod ( ) |
0 commit comments