Verwenden Sie einen der unterstützten Treiber. Strings nicht als JSON deserialisieren und als Abfragen übergeben, z. tun Sie dies nicht (in Ruby):
collection.send(query_type, JSON.parse(parameters))
wobei query_type
und parameters
sind Strings, die aus einem Formular kommen. Dazu müsste man allerdings kriminell dumm sein.
Da es keine Abfragesprache als solche gibt, gibt es nicht denselben Raum für Injektionen. Ein Grund dafür, dass SQL-Injection-Angriffe möglich sind, liegt unter anderem darin, dass die auszuführende Aktion (SELECT
, UPDATE
, DELETE
usw.) ist Teil der Abfragezeichenfolge. MongoDB und viele andere neuere Datenbanken funktionieren nicht so, stattdessen ist die Aktion Teil der API. Wobei SQL-Treiber nur query
haben und in manchen Fällen exec
, MongoDB hat find
, update
, insert
und remove
.