Si se pasan parámetros $_GET (o $_POST)
   a las consultas, asegúrese de convertirlos en strings antes.
   Los usuarios pueden insertar arrays asociativos en las consultas
   GET y POST, que podrían convertirse en consultas $ no deseadas.
  
   Un ejemplo bastante inofensivo: supongamos que se buscan las informaciones de un
   usuario con la consulta http://www.example.com?username=bob.
   La aplicación crea la consulta
   $q = new \MongoDB\Driver\Query( [ 'username' => $_GET['username'] ]).
  
   Esto funciona bien, pero alguien podría subvertirlo pasando
   http://www.example.com?username[$ne]=foo, que PHP
   transformará mágicamente en un array asociativo, transformando la consulta en
   $q = new \MongoDB\Driver\Query( [ 'username' => [ '$ne' => 'foo' ] ] ),
   que devolverá todos los usuarios cuyo nombre no es "foo" (todos los usuarios, probablemente).
  
   Este es un ataque bastante fácil de contrarrestar: asegúrese de que los parámetros
   $_GET y $_POST sean del tipo esperado
   antes de enviarlos a la base de datos. PHP dispone de la función
   filter_var() para ayudar.
  
Tenga en cuenta que este tipo de ataque puede ser utilizado con cualquier interacción con la base de datos que localice un documento, incluyendo actualizaciones, upserts, eliminaciones y comandos findAndModify.
Ver » la documentación principal para más información sobre los problemas de tipo inyección SQL con MongoDB.
