consulta parametrizada y marca de preguntas
]]Al buscar documentos SQL, puede encontrar un signo de interrogación (?) En su consulta. Estos marcadores de posición representan consultas parametrizadas y se utilizan ampliamente para ejecutar SQL dinámico en los programas.
La consulta parametrizada tiene muchas ventajas. Simplifican el código separando los valores de los parámetros de la consulta misma, lo que lo hace más eficiente y flexible. Además, mejoran la seguridad al prevenir los ataques de inyección SQL.
Por ejemplo, en un ejemplo de código de pseudo:
ODBCCommand cmd = new ODBCCommand("SELECT thingA FROM tableA WHERE thingB = 7")
result = cmd.Execute()
se puede reescribir como:
ODBCCommand cmd = new ODBCCommand("SELECT thingA FROM tableA WHERE thingB = ?")
cmd.Parameters.Add(7)
result = cmd.Execute()
Esta técnica asegura que las cadenas correctas escapen, eliminando el riesgo de inyección SQL. Considere el siguiente escenario:
string s = getStudentName()
cmd.CommandText = "SELECT * FROM students WHERE (name = '" s "')"
cmd.Execute()
Si el usuario ingresa a la cadena Robert '); Sin embargo, use la consulta parametrizada:
s = getStudentName()
cmd.CommandText = "SELECT * FROM students WHERE name = ?"
cmd.Parameters.Add(s)
cmd.Execute()
Funciones de la biblioteca limpia la entrada para evitar la ejecución del código malicioso.
o, Microsoft SQL Server usa parámetros nombrados, lo que mejora la legibilidad y la claridad:
cmd.Text = "SELECT thingA FROM tableA WHERE thingB = @varname"
cmd.Parameters.AddWithValue("@varname", 7)
result = cmd.Execute()
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3