File tree Expand file tree Collapse file tree 4 files changed +14
-2
lines changed
lib/semmle/javascript/frameworks
test/library-tests/frameworks/UriLibraries Expand file tree Collapse file tree 4 files changed +14
-2
lines changed Original file line number Diff line number Diff line change @@ -175,7 +175,12 @@ module querystringify {
175
175
* Gets a data flow source node for member `name` of the querystringify library.
176
176
*/
177
177
DataFlow:: SourceNode querystringifyMember ( string name ) {
178
- result = DataFlow:: moduleMember ( "querystringify" , name )
178
+ result = querystringify ( ) .getMember ( name ) .getAnImmediateUse ( )
179
+ }
180
+
181
+ /** Gets an API node referring to the `querystringify` module. */
182
+ private API:: Node querystringify ( ) {
183
+ result = [ API:: moduleImport ( "querystringify" ) , API:: moduleImport ( "url-parse" ) .getMember ( "qs" ) ]
179
184
}
180
185
181
186
/**
@@ -184,7 +189,7 @@ module querystringify {
184
189
private class Step extends TaintTracking:: SharedTaintStep {
185
190
override predicate uriStep ( DataFlow:: Node pred , DataFlow:: Node succ ) {
186
191
exists ( DataFlow:: CallNode call |
187
- call = querystringifyMember ( [ "parse" , "stringify" ] ) .getACall ( ) and
192
+ call = querystringify ( ) . getMember ( [ "parse" , "stringify" ] ) .getACall ( ) and
188
193
pred = call .getAnArgument ( ) and
189
194
succ = call
190
195
)
Original file line number Diff line number Diff line change 45
45
| querystring.js:9:26:9:26 | x | querystring.js:9:5:9:27 | queryst ... cape(x) |
46
46
| querystringify.js:3:30:3:30 | x | querystringify.js:3:9:3:31 | queryst ... arse(x) |
47
47
| querystringify.js:5:30:5:30 | x | querystringify.js:5:5:5:31 | queryst ... gify(x) |
48
+ | querystringify.js:8:23:8:23 | x | querystringify.js:8:1:8:24 | queryst ... arse(x) |
48
49
| uri-js.js:3:19:3:19 | x | uri-js.js:3:9:3:20 | URI.parse(x) |
49
50
| uri-js.js:5:19:5:19 | x | uri-js.js:5:5:5:20 | URI.serialize(x) |
50
51
| uri-js.js:7:17:7:17 | x | uri-js.js:7:5:7:18 | URI.resolve(x) |
Original file line number Diff line number Diff line change @@ -3,3 +3,6 @@ var querystringify = require("querystringify");
3
3
var r = querystringify . parse ( x ) ;
4
4
5
5
r = querystringify . stringify ( x ) ;
6
+
7
+ var querystringify2 = require ( 'url-parse' ) . qs ;
8
+ querystringify2 . parse ( x ) ;
Original file line number Diff line number Diff line change @@ -17,6 +17,7 @@ querystring
17
17
querystringify
18
18
| querystringify.js:3:9:3:28 | querystringify.parse |
19
19
| querystringify.js:5:5:5:28 | queryst ... ringify |
20
+ | querystringify.js:8:1:8:21 | queryst ... 2.parse |
20
21
uridashjs
21
22
| uri-js.js:3:9:3:17 | URI.parse |
22
23
| uri-js.js:5:5:5:17 | URI.serialize |
@@ -76,6 +77,7 @@ uriLibraryStep
76
77
| querystring.js:9:26:9:26 | x | querystring.js:9:5:9:27 | queryst ... cape(x) |
77
78
| querystringify.js:3:30:3:30 | x | querystringify.js:3:9:3:31 | queryst ... arse(x) |
78
79
| querystringify.js:5:30:5:30 | x | querystringify.js:5:5:5:31 | queryst ... gify(x) |
80
+ | querystringify.js:8:23:8:23 | x | querystringify.js:8:1:8:24 | queryst ... arse(x) |
79
81
| uri-js.js:3:19:3:19 | x | uri-js.js:3:9:3:20 | URI.parse(x) |
80
82
| uri-js.js:5:19:5:19 | x | uri-js.js:5:5:5:20 | URI.serialize(x) |
81
83
| uri-js.js:7:17:7:17 | x | uri-js.js:7:5:7:18 | URI.resolve(x) |
101
103
| url.js:5:5:5:14 | url.format |
102
104
| url.js:7:5:7:15 | url.resolve |
103
105
urlParse
106
+ | querystringify.js:7:23:7:42 | require('url-parse') |
104
107
| url-parse.js:1:13:1:32 | require('url-parse') |
You can’t perform that action at this time.
0 commit comments