"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como as consultas parametrizadas no SQL impedem ataques de injeção de SQL?

Como as consultas parametrizadas no SQL impedem ataques de injeção de SQL?

Postado em 2025-02-06
Navegar:736

How Do Parameterized Queries in SQL Prevent SQL Injection Attacks?

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 ()
 
Tutorial mais recente Mais>

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