NoSQL enjeksiyonu (ARCH2140)
Anahtar python.security.nosql-injection · Önem error · Kategori security · CWE CWE-943
Kullanıcının gönderdiği nesneyi doğrudan bir MongoDB sorgusuna koymak, saldırganın $ne veya $gt gibi operatörler enjekte etmesine olanak tanır. Bu, kimlik doğrulama atlatma ve veri sızdırmaya yol açar.
Hatalı
Bölüm başlığı “Hatalı”def login(request): body = request.get_json() user = db.users.find_one({"name": body["name"], "password": body["password"]})def login(request): body = request.get_json() name = str(body["name"]) password = str(body["password"]) user = db.users.find_one({"name": name, "password": password})Düzeltme
Bölüm başlığı “Düzeltme”Sorgu alanlarını beklenen ilkel tiplere zorlayın; ham JSON nesnelerini doğrudan sorguya geçirmeyin.