0

Programando PHP de forma segura para evitar SQL injections

criado por Gregory em 19/10/2005 5:54am
Para solucionar o problema, precisamos fazer duas coisas:
1 - Tirar os _GET ou _POST dos nossos SQLs
2 - Tratar os mesmos antes de inseri-los no SQL

Usando o exemplo, vamos ver como fariamos isso:
<?php
// determinar se a variavel sexo existe
// caso contrario configuramos como 'm'
$sexo = isset($_GET['sexo'])?$_GET['sexo']:'m';

// determinar o comprimento da variavel (se ela exceder um numero maior que
// esperavamos, notificar usuario:
if (strlen($sexo) > 1) {
    exit("Campo sexo de apresenta tamanho inválido");
}

//OU

// Verificar se os campos possuem os valores esperados
if ($sexo != 'm' && $sexo != 'f') {
    exit('Campo sexo contem caracteres invalidos');
}

// e assim por diante.
?>

Finalmente, caso tenhamos passado por todos as validacoes, podemos montar nosso sql:
<?php
$sql = "select nome from tbl_clientes WHERE sexo ='$sexo'";
?>

Bom, é +- isso. Espero que isso ajude a tornar o PHP+MySQL(ou qqr outro banco) um pouco mais seguro.

Fica uma dica: Validação por servidor é sempre importante, não importa quanto Javascript se tenha antes do processo, pois este pode ser sempre burlado por uma pessoa de más intenções.

Valide, valide, valide!

Bugz

Comentários:

Nenhum comentário foi enviado ainda.

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)