File tree Expand file tree Collapse file tree 1 file changed +19
-0
lines changed
ruby/ql/lib/codeql/ruby/frameworks/rack/internal Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Original file line number Diff line number Diff line change 44
55private import codeql.ruby.AST
66private import codeql.ruby.ApiGraphs
7+ private import codeql.ruby.Concepts
78private import codeql.ruby.DataFlow
89private import codeql.ruby.typetracking.TypeTracker
910private import Response:: Private as RP
@@ -86,4 +87,22 @@ module App {
8687 /** Gets a response returned from this request handler. */
8788 RP:: PotentialResponseNode getAResponse ( ) { result = resp }
8889 }
90+
91+ /** A read of the query string via `env['QUERY_STRING']`. */
92+ private class EnvQueryStringRead extends Http:: Server:: RequestInputAccess:: Range {
93+ EnvQueryStringRead ( ) {
94+ exists ( RequestHandler handler , DataFlow:: ParameterNode env , ConstantValue key |
95+ handler .getEnv ( ) = env
96+ |
97+ this = env .getAnElementRead ( key ) and
98+ key .isStringlikeValue ( "QUERY_STRING" )
99+ )
100+ }
101+
102+ override string getSourceType ( ) { result = "Rack env" }
103+
104+ override Http:: Server:: RequestInputKind getKind ( ) {
105+ result = Http:: Server:: parameterInputKind ( )
106+ }
107+ }
89108}
You can’t perform that action at this time.
0 commit comments