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.
Hatalı
Bölüm başlığı “Hatalı”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);});Düzeltme
Bölüm başlığı “Düzeltme”Sorgu değerlerini ilkel türlere (String/Number) zorlayın veya bir şema ile doğrulayın; ham nesneleri geçirmeyin.