2020-12-23 14:59:06 +01:00

36 lines
894 B
Plaintext

include::../description.adoc[]
== Noncompliant Code Example
In a MongoDB context, https://docs.mongodb.com/manual/faq/fundamentals/#how-does-mongodb-address-sql-or-query-injection[arbitrary Javascript code] can be executed with the ``$where`` operator for instance:
----
let username = req.query.username;
query = { $where: `this.username == '${username}'` }
User.find(query, function (err, users) {
if (err) {
// Handle errors
} else {
res.render('userlookup', { title: 'User Lookup', users: users });
}
});
----
== Compliant Solution
In a MongoDB context, don't use ``$where`` operator or validate the data:
----
let username = req.query.username;
query = { username: username }
User.find(query, function (err, users) {
if (err) {
// Handle errors
} else {
res.render('userlookup', { title: 'User Lookup', users: users });
}
});
----
include::../see.adoc[]