@@ -8,76 +8,76 @@ async def test_taint(request: web.Request): # $ requestHandler
8
8
# yarl.URL instances
9
9
# https://yarl.readthedocs.io/en/stable/api.html#yarl.URL
10
10
# see below
11
- request .url , # $ MISSING: tainted
12
- request .rel_url , # $ MISSING: tainted
11
+ request .url , # $ tainted
12
+ request .rel_url , # $ tainted
13
13
14
- request .forwarded , # $ MISSING: tainted
14
+ request .forwarded , # $ tainted
15
15
16
- request .host , # $ MISSING: tainted
17
- request .remote , # $ MISSING: tainted
18
- request .path , # $ MISSING: tainted
19
- request .path_qs , # $ MISSING: tainted
20
- request .raw_path , # $ MISSING: tainted
16
+ request .host , # $ tainted
17
+ request .remote , # $ tainted
18
+ request .path , # $ tainted
19
+ request .path_qs , # $ tainted
20
+ request .raw_path , # $ tainted
21
21
22
22
# multidict.MultiDictProxy[str]
23
23
# see https://multidict.readthedocs.io/en/stable/multidict.html#multidict.MultiDictProxy
24
24
# TODO: Should have a better way to capture that we in fact _do_ model this as a
25
25
# an instance of the right class, and have the actual taint_test for that in a
26
26
# different file!
27
- request .query , # $ MISSING: tainted
28
- request .query ["key" ], # $ MISSING: tainted
29
- request .query .get ("key" ), # $ MISSING: tainted
27
+ request .query , # $ tainted
28
+ request .query ["key" ], # $ tainted
29
+ request .query .get ("key" ), # $ tainted
30
30
request .query .getone ("key" ), # $ MISSING: tainted
31
31
request .query .getall ("key" ), # $ MISSING: tainted
32
32
request .query .keys (), # $ MISSING: tainted
33
- request .query .values (), # $ MISSING: tainted
34
- request .query .items (), # $ MISSING: tainted
35
- request .query .copy (), # $ MISSING: tainted
36
- list (request .query ), # $ MISSING: tainted
37
- iter (request .query ), # $ MISSING: tainted
33
+ request .query .values (), # $ tainted
34
+ request .query .items (), # $ tainted
35
+ request .query .copy (), # $ tainted
36
+ list (request .query ), # $ tainted
37
+ iter (request .query ), # $ tainted
38
38
39
39
# multidict.CIMultiDictProxy[str]
40
40
# see https://multidict.readthedocs.io/en/stable/multidict.html#multidict.CIMultiDictProxy
41
41
# TODO: Should have a better way to capture that we in fact _do_ model this as a
42
42
# an instance of the right class, and have the actual taint_test for that in a
43
43
# different file!
44
- request .headers , # $ MISSING: tainted
45
- request .query .getone ("key" ), # $ MISSING: tainted
44
+ request .headers , # $ tainted
45
+ request .headers .getone ("key" ), # $ MISSING: tainted
46
46
47
47
# https://docs.python.org/3/library/asyncio-protocol.html#asyncio-transport
48
48
# TODO
49
- request .transport , # $ MISSING: tainted
49
+ request .transport , # $ tainted
50
50
request .transport .get_extra_info ("key" ), # $ MISSING: tainted
51
51
52
52
# dict-like (readonly)
53
- request .cookies , # $ MISSING: tainted
54
- request .cookies ["key" ], # $ MISSING: tainted
55
- request .cookies .get ("key" ), # $ MISSING: tainted
53
+ request .cookies , # $ tainted
54
+ request .cookies ["key" ], # $ tainted
55
+ request .cookies .get ("key" ), # $ tainted
56
56
request .cookies .keys (), # $ MISSING: tainted
57
- request .cookies .values (), # $ MISSING: tainted
58
- request .cookies .items (), # $ MISSING: tainted
59
- list (request .cookies ), # $ MISSING: tainted
60
- iter (request .cookies ), # $ MISSING: tainted
57
+ request .cookies .values (), # $ tainted
58
+ request .cookies .items (), # $ tainted
59
+ list (request .cookies ), # $ tainted
60
+ iter (request .cookies ), # $ tainted
61
61
62
62
63
63
# aiohttp.StreamReader
64
64
# see https://docs.aiohttp.org/en/stable/streams.html#aiohttp.StreamReader
65
65
# TODO
66
- request .content , # $ MISSING: tainted
67
- request ._payload , # $ MISSING: tainted
66
+ request .content , # $ tainted
67
+ request ._payload , # $ tainted
68
68
69
- request .body_exists , # $ MISSING: tainted
70
- request .has_body , # $ MISSING: tainted
69
+ request .body_exists , # $ tainted
70
+ request .has_body , # $ tainted
71
71
72
- request .content_type , # $ MISSING: tainted
73
- request .charset , # $ MISSING: tainted
72
+ request .content_type , # $ tainted
73
+ request .charset , # $ tainted
74
74
75
- request .http_range , # $ MISSING: tainted
75
+ request .http_range , # $ tainted
76
76
77
77
# Optional[datetime]
78
- request .if_modified_since , # $ MISSING: tainted
79
- request .if_unmodified_since , # $ MISSING: tainted
80
- request .if_range , # $ MISSING: tainted
78
+ request .if_modified_since , # $ tainted
79
+ request .if_unmodified_since , # $ tainted
80
+ request .if_range , # $ tainted
81
81
82
82
request .clone (scheme = "https" ), # $ MISSING: tainted
83
83
@@ -182,7 +182,7 @@ async def test_taint(request: web.Request): # $ requestHandler
182
182
request .url .with_fragment ("foo" ), # $ MISSING: tainted
183
183
request .url .with_name ("foo" ), # $ MISSING: tainted
184
184
185
- request .url .join (yarl .URL ("wat.html" )), # $ MISSING: tainted
185
+ request .url .join (yarl .URL ("wat.html" )), # $ tainted
186
186
187
187
request .url .human_repr (), # $ MISSING: tainted
188
188
)
0 commit comments