SQL Consulta parametrizada e marca de interrogatório
]Ao procurar documentos SQL, você pode encontrar um ponto de interrogação (?) Em sua consulta. Esses espaços reservados representam consultas parametrizadas e são amplamente usadas para executar o SQL dinâmico nos programas.
A consulta parametrizada tem muitas vantagens. Eles simplificam o código separando os valores dos parâmetros da própria consulta, tornando -o mais eficiente e flexível. Além disso, eles aumentam a segurança, impedindo os ataques de injeção de SQL.
por exemplo, em um exemplo pseudo-código:
ODBCCommand cmd = new ODBCCommand("SELECT thingA FROM tableA WHERE thingB = 7")
result = cmd.Execute()
pode ser reescrito como:
ODBCCommand cmd = new ODBCCommand("SELECT thingA FROM tableA WHERE thingB = ?")
cmd.Parameters.Add(7)
result = cmd.Execute()
Esta técnica garante que a string correta escape, eliminando o risco de injeção de SQL. Considere o seguinte cenário:
string s = getStudentName()
cmd.CommandText = "SELECT * FROM students WHERE (name = '" s "')"
cmd.Execute()
se o usuário inserir a string robert '); No entanto, use uma consulta parametrizada:
s = getStudentName()
cmd.CommandText = "SELECT * FROM students WHERE name = ?"
cmd.Parameters.Add(s)
cmd.Execute()
Funções da biblioteca Limpe a entrada para evitar a execução de código maliciosa.
OR, Microsoft SQL Server usa parâmetros nomeados, o que melhora a legibilidade e a clareza:
... cmd.parameters.addwithValue ("@varname", 7) resultado = cmd.execute ()
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3