İçeriğe geç

NoSQL enjeksiyonu (ARCH3140)

Anahtar typescript.security.nosql-injection · Önem error · Kategori security · CWE CWE-943

Güvenilmeyen nesneleri doğrudan bir NoSQL sorgusuna geçirmek, $gt veya $ne gibi operatör enjeksiyonuna ve kimlik doğrulama atlatmaya olanak tanır. Girdiyi her zaman ilkel türlere zorlayın.

app.post("/login", async (req, res) => {
const user = await User.findOne({
username: req.body.username,
password: req.body.password,
});
res.json(user);
});
app.post("/login", async (req, res) => {
const user = await User.findOne({
username: String(req.body.username),
password: String(req.body.password),
});
res.json(user);
});

Sorgu değerlerini ilkel türlere (String/Number) zorlayın veya bir şema ile doğrulayın; ham nesneleri geçirmeyin.