2
2
* Provides a flow label for reasoning about URLs with a tainted query and fragment part,
3
3
* which we collectively refer to as the "suffix" of the URL.
4
4
*/
5
+
5
6
import javascript
6
7
7
8
/**
@@ -17,9 +18,7 @@ module TaintedUrlSuffix {
17
18
* Can also be accessed using `TaintedUrlSuffix::label()`.
18
19
*/
19
20
class TaintedUrlSuffixLabel extends FlowLabel {
20
- TaintedUrlSuffixLabel ( ) {
21
- this = "tainted-url-suffix"
22
- }
21
+ TaintedUrlSuffixLabel ( ) { this = "tainted-url-suffix" }
23
22
}
24
23
25
24
/**
@@ -30,7 +29,7 @@ module TaintedUrlSuffix {
30
29
/** Holds for `pred -> succ` is a step of form `x -> x.p` */
31
30
private predicate isSafeLocationProp ( DataFlow:: PropRead read ) {
32
31
// Ignore properties that refer to the scheme, domain, port, auth, or path.
33
- exists ( string name | name = read .getPropertyName ( ) |
32
+ exists ( string name | name = read .getPropertyName ( ) |
34
33
name = "protocol" or
35
34
name = "scheme" or
36
35
name = "host" or
@@ -86,10 +85,14 @@ module TaintedUrlSuffix {
86
85
name = "get"
87
86
or
88
87
// Methods on URL objects from the Closure library
89
- name = "getDecodedQuery" or
90
- name = "getFragment" or
91
- name = "getParameterValue" or
92
- name = "getParameterValues" or
88
+ name = "getDecodedQuery"
89
+ or
90
+ name = "getFragment"
91
+ or
92
+ name = "getParameterValue"
93
+ or
94
+ name = "getParameterValues"
95
+ or
93
96
name = "getQueryData"
94
97
)
95
98
or
0 commit comments