SQL Injection é um ataque que consiste na inserção (conhecido como injeção) de uma query via aplicação web. A MelhorWeb sempre toma todas as precauções em relação a atualizações para evitar quaisquer brechas de segurança nos sites hospedados.

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

Tais vulnerabilidades estão presentes em códigos de programação como: ASP e PHP 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 ou parâmetros de URL.

Verifique Se o Campo é Numérico

Usuários mal intencionados podem alterar o campo na passagem de URL de:

www.seu-dominio.com.br/index.php?id=1

Para:

www.seu-dominio.com.br/index.php?id=1&+union+all+select+...

Coloque uma verificação se o campo é numérico antes de exibir o registro:

if (is_numeric($id)) {

//Executa o script

}

Trate a Variável Exigindo que Tenha Vindo de um Formulário

O uso de $_POST ou $_GET é muito importante, pois exige que a variável tenha sido enviada através de um formulário e não atribuida aleatoriamente.

Através do comando abaixo estamos autorizando a exclusão de qualquer ID desde que seja numérico:

if (is_numeric($id)) {
$consulta = “DELETE FROM tabela WHERE id_tabela = ” . $id;
}
Já no comando abaixo estamos autorizando a exclusão de qualquer ID desde que seja numérico e tenha vindo pelo formulário:

if (is_numeric($_POST[id])) {
$consulta = “DELETE FROM tabela WHERE id_tabela = ” . $_POST[id];
}

Se você já possuir um script pronto pode adaptar da seguinte forma:

$id = $_GET[id] -> se o id tiver que ser passado via GET
$id = $_POST[id] -> se o id tiver que ser passado via POST

Essas medidas apesar de serem simples já garantem uma certa segurança , porém não são suficientes para proteger integralmente sua aplicação na web. Abordaremos em outro artigo medidas mais complexas sobre SQL injection.