Why this matters
Unsanitized user input in NoSQL queries can allow attackers to manipulate database queries, leading to data leaks or unauthorized modifications.
Unsanitized user input in NoSQL queries can allow attackers to manipulate database queries, leading to data leaks or unauthorized modifications.
Unsanitized user input in NoSQL queries can allow attackers to manipulate database queries, leading to data leaks or unauthorized modifications.
Side-by-side examples engineers can pattern-match during review.
using MongoDB.Driver;
using MongoDB.Bson;
[ApiController]
[Route("Example")]
public class ExampleController: ControllerBase
{
private string connectionString;
[Route("Example")]
public async Task<string> Example()
{
var client = new MongoClient(connectionString);
var database = client.GetDatabase("example");
var collection = database.GetCollection<Message>("messages");
var filterDefinition = Request.Query["filterDefinition"];
await collection.FindAsync(filter)
}
}using MongoDB.Driver;
using MongoDB.Bson;
[ApiController]
[Route("Example")]
public class ExampleController: ControllerBase
{
private string connectionString;
[Route("Example")]
public async Task<string> Example()
{
var client = new MongoClient(connectionString);
var database = client.GetDatabase("example");
var collection = database.GetCollection<Message>("messages");
var filterDefinition = Builders<BsonDocument>.Filter.Eq("Usertitle", "Example");
await collection.FindAsync(filter)
}
}using MongoDB.Driver;
using MongoDB.Bson;
[ApiController]
[Route("Example")]
public class ExampleController: ControllerBase
{
private string connectionString;
[Route("Example")]
public async Task<string> Example()
{
var client = new MongoClient(connectionString);
var database = client.GetDatabase("example");
var collection = database.GetCollection<Message>("messages");
var filterDefinition = Request.Query["filterDefinition"];
await collection.FindAsync(filter)
}
}using MongoDB.Driver;
using MongoDB.Bson;
[ApiController]
[Route("Example")]
public class ExampleController: ControllerBase
{
private string connectionString;
[Route("Example")]
public async Task<string> Example()
{
var client = new MongoClient(connectionString);
var database = client.GetDatabase("example");
var collection = database.GetCollection<Message>("messages");
var filterDefinition = Builders<BsonDocument>.Filter.Eq("Usertitle", "Example");
await collection.FindAsync(filter)
}
}From the same buckets as this rule.