File tree Expand file tree Collapse file tree 3 files changed +18
-4
lines changed
ruby/ql/test/library-tests/frameworks/rack Expand file tree Collapse file tree 3 files changed +18
-4
lines changed Original file line number Diff line number Diff line change @@ -3,9 +3,10 @@ rackRequestHandlers
3
3
| rack.rb:17:3:21:5 | call | rack.rb:17:12:17:18 | the_env | rack.rb:20:5:20:27 | call to [] |
4
4
| rack.rb:30:3:36:5 | call | rack.rb:30:12:30:14 | env | rack.rb:35:5:35:26 | call to [] |
5
5
| rack.rb:40:3:44:5 | call | rack.rb:40:12:40:14 | env | rack.rb:43:5:43:45 | call to [] |
6
- | rack.rb:60:3:62:5 | call | rack.rb:60:12:60:14 | env | rack.rb:66:7:66:22 | call to [] |
7
- | rack.rb:60:3:62:5 | call | rack.rb:60:12:60:14 | env | rack.rb:73:5:73:21 | call to [] |
6
+ | rack.rb:60:3:62:5 | call | rack.rb:60:12:60:14 | env | rack.rb:66:7:66:24 | call to [] |
7
+ | rack.rb:60:3:62:5 | call | rack.rb:60:12:60:14 | env | rack.rb:73:5:73:23 | call to [] |
8
8
| rack.rb:79:3:81:5 | call | rack.rb:79:17:79:19 | env | rack.rb:93:5:93:78 | call to finish |
9
+ | rack.rb:98:3:102:5 | call | rack.rb:98:12:98:14 | env | rack.rb:101:5:101:42 | call to [] |
9
10
| rack_apps.rb:6:3:12:5 | call | rack_apps.rb:6:12:6:14 | env | rack_apps.rb:10:12:10:34 | call to [] |
10
11
| rack_apps.rb:16:3:18:5 | call | rack_apps.rb:16:17:16:19 | env | rack_apps.rb:17:5:17:28 | call to [] |
11
12
| rack_apps.rb:21:14:21:50 | -> { ... } | rack_apps.rb:21:17:21:19 | env | rack_apps.rb:21:24:21:48 | call to [] |
@@ -16,3 +17,5 @@ rackResponseContentTypes
16
17
redirectResponses
17
18
| rack.rb:43:5:43:45 | call to [] | rack.rb:42:30:42:40 | "/foo.html" |
18
19
| rack.rb:93:5:93:78 | call to finish | rack.rb:93:60:93:70 | redirect_to |
20
+ requestInputAccesses
21
+ | rack.rb:99:14:99:32 | ...[...] |
Original file line number Diff line number Diff line change 1
1
private import codeql.ruby.AST
2
+ private import codeql.ruby.Concepts
2
3
private import codeql.ruby.frameworks.Rack
3
4
private import codeql.ruby.DataFlow
4
5
@@ -17,3 +18,5 @@ query predicate rackResponseContentTypes(
17
18
query predicate redirectResponses ( Rack:: Response:: RedirectResponse resp , DataFlow:: Node location ) {
18
19
location = resp .getRedirectLocation ( )
19
20
}
21
+
22
+ query predicate requestInputAccesses ( Http:: Server:: RequestInputAccess ria ) { any ( ) }
Original file line number Diff line number Diff line change @@ -63,14 +63,14 @@ def call(env)
63
63
64
64
def run ( env )
65
65
if env [ :foo ] == "foo"
66
- [ 200 , { } , "foo" ]
66
+ [ 200 , { } , [ "foo" ] ]
67
67
else
68
68
error
69
69
end
70
70
end
71
71
72
72
def error
73
- [ 400 , { } , "nope" ]
73
+ [ 400 , { } , [ "nope" ] ]
74
74
end
75
75
end
76
76
@@ -93,3 +93,11 @@ def do_redirect
93
93
Rack ::Response . new ( [ 'redirecting' ] , 302 , 'Location' => redirect_to ) . finish
94
94
end
95
95
end
96
+
97
+ class UsesEnvQueryParams
98
+ def call ( env )
99
+ params = env [ 'QUERY_STRING' ]
100
+ user = Rack ::Utils . parse_query ( params ) [ "user" ]
101
+ [ 200 , { } , [ lookup_user_profile ( user ) ] ]
102
+ end
103
+ end
You can’t perform that action at this time.
0 commit comments