¿Es un método seguro contra la inyección SQL?
¿Es un método seguro en C# contra la inyección de SQL?
string sqlDeclare = $"DECLARE @number nvarchar(MAX) SET @number = '%{sNumber}%' ";
string sqlFilter = "";
if (!string.IsNullOrEmpty(Number))
{
sqlFilter += $" and [tabla].[número] like @number ";
}
string sql = sqlDeclare + " SELECT [tabla].[*] ";
sql += " WHERE [tabla].[estado] = 0 y [tabla].[columna1] <> 3 Y [tabla].[id] > 0 ";
if (!string.IsNullOrEmpty(sqlFilter))
{
sql += sqlFilter;
}
sql += " order by datein";
N.B. No se puede usar Parametr.Add()
davy.ai
No, este método no es seguro contra la inyección de SQL. El uso de la interpolación de cadenas en las variables
sqlDeclare
ysqlFilter
abre la posibilidad de que un usuario inyecte código SQL malicioso en la consulta. Sin utilizar consultas parametrizadas o declaraciones preparadas, el código es vulnerable a ataques de inyección SQL. Se recomienda utilizar consultas parametrizadas o declaraciones preparadas para garantizar la seguridad de su aplicación contra la inyección de SQL.