es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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()

Tags:  , ,

Answer

  1. Avatar for 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 y sqlFilter 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.

Comments are closed.