NoSQL Injection (ARCH5140)
Ce contenu n’est pas encore disponible dans votre langue.
Key go.security.nosql-injection · Severity error · Category security · CWE CWE-943
Passing untrusted input straight into a NoSQL query lets an attacker inject query operators like $gt to bypass authentication or disclose data.
Incorrect
Section titled “Incorrect”var filter bson.Mjson.Unmarshal(r.Body, &filter) // {"password": {"$ne": null}}coll.FindOne(ctx, filter)Correct
Section titled “Correct”var req struct{ User, Pass string }json.NewDecoder(r.Body).Decode(&req)filter := bson.M{"user": req.User, "pass": req.Pass}coll.FindOne(ctx, filter)Build query filters from typed scalar fields, not from raw user-supplied objects.