File tree Expand file tree Collapse file tree
lib/semmle/javascript/frameworks
test/library-tests/frameworks/UriLibraries Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -175,7 +175,12 @@ module querystringify {
175175 * Gets a data flow source node for member `name` of the querystringify library.
176176 */
177177 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" ) ]
179184 }
180185
181186 /**
@@ -184,7 +189,7 @@ module querystringify {
184189 private class Step extends TaintTracking:: SharedTaintStep {
185190 override predicate uriStep ( DataFlow:: Node pred , DataFlow:: Node succ ) {
186191 exists ( DataFlow:: CallNode call |
187- call = querystringifyMember ( [ "parse" , "stringify" ] ) .getACall ( ) and
192+ call = querystringify ( ) . getMember ( [ "parse" , "stringify" ] ) .getACall ( ) and
188193 pred = call .getAnArgument ( ) and
189194 succ = call
190195 )
Original file line number Diff line number Diff line change 4545| querystring.js:9:26:9:26 | x | querystring.js:9:5:9:27 | queryst ... cape(x) |
4646| querystringify.js:3:30:3:30 | x | querystringify.js:3:9:3:31 | queryst ... arse(x) |
4747| 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) |
4849| uri-js.js:3:19:3:19 | x | uri-js.js:3:9:3:20 | URI.parse(x) |
4950| uri-js.js:5:19:5:19 | x | uri-js.js:5:5:5:20 | URI.serialize(x) |
5051| 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");
33var r = querystringify . parse ( x ) ;
44
55r = 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
1717querystringify
1818| querystringify.js:3:9:3:28 | querystringify.parse |
1919| querystringify.js:5:5:5:28 | queryst ... ringify |
20+ | querystringify.js:8:1:8:21 | queryst ... 2.parse |
2021uridashjs
2122| uri-js.js:3:9:3:17 | URI.parse |
2223| uri-js.js:5:5:5:17 | URI.serialize |
@@ -76,6 +77,7 @@ uriLibraryStep
7677| querystring.js:9:26:9:26 | x | querystring.js:9:5:9:27 | queryst ... cape(x) |
7778| querystringify.js:3:30:3:30 | x | querystringify.js:3:9:3:31 | queryst ... arse(x) |
7879| 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) |
7981| uri-js.js:3:19:3:19 | x | uri-js.js:3:9:3:20 | URI.parse(x) |
8082| uri-js.js:5:19:5:19 | x | uri-js.js:5:5:5:20 | URI.serialize(x) |
8183| uri-js.js:7:17:7:17 | x | uri-js.js:7:5:7:18 | URI.resolve(x) |
101103| url.js:5:5:5:14 | url.format |
102104| url.js:7:5:7:15 | url.resolve |
103105urlParse
106+ | querystringify.js:7:23:7:42 | require('url-parse') |
104107| url-parse.js:1:13:1:32 | require('url-parse') |
You can’t perform that action at this time.
0 commit comments