"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 inserir com segurança variáveis ​​em consultas SQL usando o Python?

Como inserir com segurança variáveis ​​em consultas SQL usando o Python?

Postado em 2025-02-06
Navegar:522

How to Safely Insert Variables into SQL Queries Using Python?

Insira variáveis ​​com segurança nas consultas SQL em Python

Ao processar consultas de banco de dados no Python, você geralmente precisa incluir variáveis ​​na instrução de consulta. No entanto, certifique -se de operar de uma maneira que impeça erros de sintaxe ou vulnerabilidades de segurança.

Considere o seguinte código Python:

cursor.execute("INSERT INTO table VALUES var1, var2, var3")

Neste código, var1 é um número inteiro, var2 e var3 são strings. No entanto, quando o Python tenta incluir os nomes var1 , var2 e var3 Como parte do próprio texto da consulta, surgem problemas, resultando na consulta invalidação.

Para resolver esse problema, você pode usar o mecanismo de substituição de espaço reservado fornecido pela API do banco de dados. Aqui está como reescrever o código usando espaço reservado:

cursor.execute("INSERT INTO table VALUES (%s, %s, %s)", (var1, var2, var3))

neste código aprimorado:

  • %s representa um espaço reservado para preencher o valor.
  • (var1, var2, var3) é uma tupla que contém o valor a ser inserido.

passando valores como tuplas, a API do banco de dados lida com as variáveis ​​necessárias e referências, garantindo a compatibilidade do banco de dados e impedindo possíveis riscos de segurança.

Observe que, para um único parâmetro, é necessária uma tupla com vírgulas à direita:

cursor.execute("INSERT INTO table VALUES (%s)", (var1,))

Além disso, evite usar o operador de formatação da string (%) para inserir variáveis, pois pode causar vulnerabilidades de segurança e a API do banco de dados não a suporta.

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