İçeriğe geç

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.

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})

Sorgu alanlarını beklenen ilkel tiplere zorlayın; ham JSON nesnelerini doğrudan sorguya geçirmeyin.