Skip to content

Commit d61d038

Browse files
committed
Refactored SuperAgentUrlRequest to use API graph.
1 parent 401c6ea commit d61d038

File tree

3 files changed

+16
-6
lines changed

3 files changed

+16
-6
lines changed

javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -529,17 +529,17 @@ module ClientRequest {
529529
SuperAgentUrlRequest() {
530530
exists(string moduleName | moduleName = "superagent" |
531531
// Handle method calls like superagent.get(url)
532-
this = DataFlow::moduleMember(moduleName, getSuperagentRequestMethodName()).getACall() and
532+
this = API::moduleImport(moduleName).getMember(getSuperagentRequestMethodName()).getACall() and
533533
url = this.getArgument(0)
534534
or
535535
// Handle direct calls like superagent('GET', url)
536-
this = DataFlow::moduleImport(moduleName).getACall() and
536+
this = API::moduleImport(moduleName).getACall() and
537537
this.getArgument(0).mayHaveStringValue(getSuperagentRequestMethodName()) and
538538
url = this.getArgument(1)
539539
or
540540
// Handle agent calls like superagent.agent().get(url)
541541
exists(DataFlow::SourceNode agent |
542-
agent = DataFlow::moduleMember(moduleName, "agent").getACall() and
542+
agent = API::moduleImport(moduleName).getMember("agent").getACall() and
543543
this = agent.getAMethodCall(httpMethodName()) and
544544
url = this.getArgument(0)
545545
)

javascript/ql/test/library-tests/frameworks/ClientRequests/ClientRequests.expected

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ test_ClientRequest
1010
| puppeteer.ts:6:11:6:42 | page.go ... e.com') |
1111
| puppeteer.ts:8:5:8:61 | page.ad ... css" }) |
1212
| puppeteer.ts:18:30:18:50 | page.go ... estUrl) |
13+
| superagent.js:4:5:4:26 | superag ... ', url) |
14+
| superagent.js:5:5:5:23 | superagent.del(url) |
15+
| superagent.js:6:5:6:32 | superag ... st(url) |
1316
| tst.js:11:5:11:16 | request(url) |
1417
| tst.js:13:5:13:20 | request.get(url) |
1518
| tst.js:15:5:15:23 | request.delete(url) |
@@ -97,6 +100,7 @@ test_ClientRequest
97100
test_getADataNode
98101
| axiosTest.js:12:5:17:6 | axios({ ... \\n }) | axiosTest.js:15:18:15:55 | { 'Cont ... json' } |
99102
| axiosTest.js:12:5:17:6 | axios({ ... \\n }) | axiosTest.js:16:15:16:35 | {x: 'te ... 'test'} |
103+
| superagent.js:6:5:6:32 | superag ... st(url) | superagent.js:6:39:6:42 | data |
100104
| tst.js:53:5:53:23 | axios({data: data}) | tst.js:53:18:53:21 | data |
101105
| tst.js:57:5:57:39 | axios.p ... data2}) | tst.js:57:19:57:23 | data1 |
102106
| tst.js:57:5:57:39 | axios.p ... data2}) | tst.js:57:33:57:37 | data2 |
@@ -158,6 +162,9 @@ test_getUrl
158162
| puppeteer.ts:6:11:6:42 | page.go ... e.com') | puppeteer.ts:6:21:6:41 | 'https: ... le.com' |
159163
| puppeteer.ts:8:5:8:61 | page.ad ... css" }) | puppeteer.ts:8:29:8:58 | "http:/ ... le.css" |
160164
| puppeteer.ts:18:30:18:50 | page.go ... estUrl) | puppeteer.ts:18:40:18:49 | requestUrl |
165+
| superagent.js:4:5:4:26 | superag ... ', url) | superagent.js:4:23:4:25 | url |
166+
| superagent.js:5:5:5:23 | superagent.del(url) | superagent.js:5:20:5:22 | url |
167+
| superagent.js:6:5:6:32 | superag ... st(url) | superagent.js:6:29:6:31 | url |
161168
| tst.js:11:5:11:16 | request(url) | tst.js:11:13:11:15 | url |
162169
| tst.js:13:5:13:20 | request.get(url) | tst.js:13:17:13:19 | url |
163170
| tst.js:15:5:15:23 | request.delete(url) | tst.js:15:20:15:22 | url |
@@ -250,6 +257,9 @@ test_getUrl
250257
test_getAResponseDataNode
251258
| axiosTest.js:4:5:7:6 | axios({ ... \\n }) | axiosTest.js:4:5:7:6 | axios({ ... \\n }) | json | true |
252259
| axiosTest.js:12:5:17:6 | axios({ ... \\n }) | axiosTest.js:12:5:17:6 | axios({ ... \\n }) | json | true |
260+
| superagent.js:4:5:4:26 | superag ... ', url) | superagent.js:4:5:4:26 | superag ... ', url) | stream | true |
261+
| superagent.js:5:5:5:23 | superagent.del(url) | superagent.js:5:5:5:23 | superagent.del(url) | stream | true |
262+
| superagent.js:6:5:6:32 | superag ... st(url) | superagent.js:6:5:6:32 | superag ... st(url) | stream | true |
253263
| tst.js:19:5:19:23 | requestPromise(url) | tst.js:19:5:19:23 | requestPromise(url) | text | true |
254264
| tst.js:21:5:21:23 | superagent.get(url) | tst.js:21:5:21:23 | superagent.get(url) | stream | true |
255265
| tst.js:25:5:25:14 | axios(url) | tst.js:25:5:25:14 | axios(url) | | true |
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { superagent } from "./superagentWrapper.js";
22

33
function test(url) {
4-
superagent('GET', url); // Not flagged
5-
superagent.del(url); // Not flagged
6-
superagent.agent().post(url).send(data); // Not flagged
4+
superagent('GET', url);
5+
superagent.del(url);
6+
superagent.agent().post(url).send(data);
77
}

0 commit comments

Comments
 (0)