Como se proteger do SQL Injection

A HOST4 sempre toma todas as precauções em relação a atualizações e consertos nos seus sistemas para evitar quaisquer brechas de segurança nos sites hospedados.

Entretanto às vezes surgem vulnerabilidades que são exploradas através de programação, de nada adiantando as precauções que tomamos.

Tais vulnerabilidades estão presentes em códigos (ASP, PHP, etc.) colocados pelos próprios clientes. Este é o caso da "SQL Injection", brecha através da qual um invasor pode executar queries ou statements arbitrários numa base relacional via "injeção" de comandos em campos de formulários.

Para se proteger do SQL Injection verifique se todo parâmetro passado para o site é tratado antes que seja concatenado na query.

Por exemplo, nunca faça simplesmente:

// PHP
$consulta = "DELETE FROM tabela WHERE id_tabela = " . $_POST[id];


Em vez disso, trate primeiro o $_POST[id], como neste exemplo:

//PHP
if (is_numeric($_POST[id])) {
    $consulta = "DELETE FROM tabela WHERE id_tabela = " . $_POST[id];
} else {
    die("Dados inválidos");
}


Para campos com strings é aconselhável checar pelos caracteres:

        "  (aspas duplas)
        '  (aspas simples)
           (espaços)
        ;  (ponto e vírgula)
        =  (sinal de igual)
        <  (sinal de menor que)
        >  (sinal de maior que)
        !  (ponto de exclamação)
        -- (dois hifens, indica início de comentário em alguns bancos)
        #  (sustenido ou jogo-da-velha, indica início de comentário em alguns bancos)
        // (duas barras, indica início de comentário em alguns bancos)

ou pelas palavras reservadas

  - SELECT       - INSERT
  - UPDATE       - DELETE
  - WHERE        - JOIN
  - LEFT         - INNER
  - NOT          - IN
  - LIKE         - TRUNCATE
  - DROP         - CREATE
  - ALTER        - DELIMITER

- No Perl deve-se usar regular expressions de validação e no PHP a função htmlspecialchars, addslashes e/ou htmlentities.


OBS: O código de programação mencionado acima é uma sugestão, portanto é aconselhável um tratamento mais sofisticado que pode ser encontrado fácilmente pela Internet. Contamos com sua compreensão para o fato de que a HOST4 não pode se responsabilizar por apresentar mais detalhes a respeito de sua implementação e utilização. Para mais informações, sugerimos que entre em contato com o seu desenvolvedor, pois tal conhecimento é aberto e de domínio de profissionais técnicos.

  • 3 Usuários acharam útil
Esta resposta lhe foi útil?

Artigos Relacionados

Como enviar e-mails com a função mail() do PHP

Para ajudar nossos clientes disponibilizamos um exemplo de formulário de contato...

Criando URLs amigáveis

Hoje em dia é muito comum o uso de scripts que rodam no servidor (server-side) para gerar...