2023-03-07 17:16:47 +01:00
|
|
|
== How to fix it in Mongoose
|
|
|
|
|
|
|
|
=== Code examples
|
2022-11-10 11:11:55 +01:00
|
|
|
|
|
|
|
include::../../common/fix/code-rationale.adoc[]
|
|
|
|
|
|
|
|
==== Noncompliant code example
|
|
|
|
|
2023-08-15 09:43:48 +02:00
|
|
|
[source,javascript,diff-id=11,diff-type=noncompliant]
|
2022-11-10 11:11:55 +01:00
|
|
|
----
|
|
|
|
const mongoose = require('mongoose');
|
|
|
|
|
|
|
|
function(req, res) {
|
|
|
|
let query = { user: req.query.user, city: req.query.city };
|
|
|
|
const userModel = mongoose.model('User', userSchema);
|
|
|
|
userModel.find(query, (err, users) => {}); // Noncompliant
|
|
|
|
}
|
|
|
|
----
|
|
|
|
|
|
|
|
==== Compliant solution
|
|
|
|
|
2023-08-15 09:43:48 +02:00
|
|
|
[source,javascript,diff-id=11,diff-type=compliant]
|
2022-11-10 11:11:55 +01:00
|
|
|
----
|
|
|
|
const mongoose = require('mongoose');
|
|
|
|
|
|
|
|
function (req, res) {
|
|
|
|
let query = { user: req.query.user.toString(), city: req.query.city.toString() };
|
|
|
|
const userModel = mongoose.model('User', userSchema);
|
|
|
|
userModel.find(query, (err, users) => {});
|
|
|
|
}
|
|
|
|
----
|
|
|
|
|
|
|
|
=== How does this work?
|
|
|
|
|
|
|
|
include::../../common/fix/plain-string-values.adoc[]
|
|
|
|
|
|
|
|
=== Pitfalls
|
|
|
|
|
|
|
|
include::../../common/pitfalls/code-execution.adoc[]
|