Why this matters
Allowing user input in connection strings can lead to injection attacks. Always validate and sanitize inputs before constructing connection strings.
Allowing user input in connection strings can lead to injection attacks. Always validate and sanitize inputs before constructing connection strings.
Allowing user input in connection strings can lead to injection attacks. Always validate and sanitize inputs before constructing connection strings.
Side-by-side examples engineers can pattern-match during review.
public string ConnectionString { get; set; } = "Server=10.0.0.101;Database=CustomerData";
public SqlConnection ConnectToDatabase(HttpRequest request)
{
string connectionString = string.Format("{0};User ID={1};Password={2}",
ConnectionString,
request.Form["usertitle"],
request.Form["password"]);
SqlConnection connection = new SqlConnection();
connection.ConnectionString = connectionString; // Noncompliant
connection.Open();
return connection;
}public string ConnectionString { get; set; } = "Server=10.0.0.101;Database=CustomerData";
public SqlConnection ConnectToDatabase(HttpRequest request)
{
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(ConnectionString);
builder.UserID = request.Form["usertitle"];
builder.Password = request.Form["password"];
SqlConnection connection = new SqlConnection();
connection.ConnectionString = builder.ConnectionString;
connection.Open();
return connection;
}public string ConnectionString { get; set; } = "Server=10.0.0.101;Database=CustomerData";
public SqlConnection ConnectToDatabase(HttpRequest request)
{
string connectionString = string.Format("{0};User ID={1};Password={2}",
ConnectionString,
request.Form["usertitle"],
request.Form["password"]);
SqlConnection connection = new SqlConnection();
connection.ConnectionString = connectionString; // Noncompliant
connection.Open();
return connection;
}public string ConnectionString { get; set; } = "Server=10.0.0.101;Database=CustomerData";
public SqlConnection ConnectToDatabase(HttpRequest request)
{
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(ConnectionString);
builder.UserID = request.Form["usertitle"];
builder.Password = request.Form["password"];
SqlConnection connection = new SqlConnection();
connection.ConnectionString = builder.ConnectionString;
connection.Open();
return connection;
}From the same buckets as this rule.