Estoy aprendiendo mongodb y tengo una pregunta importante. ¿Hay algo en mongodb para la seguridad como en php? En php podría usar algo como:
$stmt = $this->conn->prepare("UPDATE news SET shown = shown+1 WHERE newsID = :newsID"); $stmt->bindValue(":newsID", $id, PDO::PARAM_INT); $stmt->execute();Pero, ¿qué en mongodb? Es extraño ver la inserción de variables directamente en la declaración de inserción de mongodb como:
db.products.insertOne( { _id: 10, "item": itemName, "qty": itemQuantity } );¡Gracias por su explicación!
A menos que construyas algo como
db.products.insertOne( JSON.parse('{ _id: 10, "item": itemName, "qty": itemQuantity }') )una inyección de SQL sería bastante difícil. Supongo que nadie hace ese código voluntariamente.
Cuando ejecuta una instrucción have como db.find({"someProperty": userInput}) y un hacker intenta pasar {"$exists": true} , resultará en db.find({"someProperty": "{\"$exists\": true}"}) que no debería devolver ningún resultado.
Pero como se mencionó, usar JSON.parse() o similar podría ser una falla de seguridad.