Skip to content

Commit 55ab519

Browse files
committed
JS: add Mongoose Document tests
1 parent dc27a8f commit 55ab519

2 files changed

Lines changed: 29 additions & 0 deletions

File tree

javascript/ql/test/query-tests/Security/CWE-089/untyped/DatabaseAccesses.expected

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,19 @@
1414
| mongoose.js:65:2:65:51 | Documen ... on(){}) |
1515
| mongoose.js:67:2:68:27 | new Mon ... on(){}) |
1616
| mongoose.js:71:2:77:9 | Documen ... .exec() |
17+
| mongoose.js:84:2:84:52 | Documen ... query)) |
18+
| mongoose.js:85:2:85:52 | Documen ... query)) |
19+
| mongoose.js:86:2:86:57 | Documen ... query)) |
20+
| mongoose.js:87:2:87:57 | Documen ... query)) |
21+
| mongoose.js:88:2:88:52 | Documen ... query)) |
22+
| mongoose.js:89:2:89:55 | Documen ... query)) |
23+
| mongoose.js:91:2:91:52 | Documen ... query)) |
24+
| mongoose.js:92:2:92:49 | Documen ... query)) |
25+
| mongoose.js:93:2:93:57 | Documen ... query)) |
26+
| mongoose.js:94:2:94:54 | Documen ... query)) |
27+
| mongoose.js:95:2:95:52 | Documen ... query)) |
28+
| mongoose.js:96:2:96:52 | Documen ... query)) |
29+
| mongoose.js:98:2:98:50 | Documen ... query)) |
1730
| socketio.js:11:5:11:54 | db.run( ... ndle}`) |
1831
| tst2.js:7:3:7:62 | sql.que ... ms.id}` |
1932
| tst2.js:9:3:9:85 | new sql ... + "'") |

javascript/ql/test/query-tests/Security/CWE-089/untyped/mongoose.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,4 +80,20 @@ app.post('/documents/find', (req, res) => {
8080
Mongoose.createConnection(X).count(query); // OK (invalid program)
8181
Mongoose.createConnection(X).model(Y).count(query); // NOT OK
8282
Mongoose.createConnection(X).models[Y].count(query); // NOT OK
83+
84+
Document.findOne(X, (err, res) => res.count(query)); // NOT OK
85+
Document.findOne(X, (err, res) => err.count(query)); // OK
86+
Document.findOne(X).exec((err, res) => res.count(query)); // NOT OK
87+
Document.findOne(X).exec((err, res) => err.count(query)); // OK
88+
Document.findOne(X).then((res) => res.count(query)); // NOT OK
89+
Document.findOne(X).then(Y, (err) => err.count(query)); // OK
90+
91+
Document.find(X, (err, res) => res[i].count(query)); // NOT OK
92+
Document.find(X, (err, res) => err.count(query)); // OK
93+
Document.find(X).exec((err, res) => res[i].count(query)); // NOT OK
94+
Document.find(X).exec((err, res) => err.count(query)); // OK
95+
Document.find(X).then((res) => res[i].count(query)); // NOT OK
96+
Document.find(X).then(Y, (err) => err.count(query)); // OK
97+
98+
Document.count(X, (err, res) => res.count(query)); // OK (res is a number)
8399
});

0 commit comments

Comments
 (0)