Programando PHP de forma segura para evitar SQL injections
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:
Finalmente, caso tenhamos passado por todos as validacoes, podemos montar nosso sql:
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
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
Páginas:
1
2
Novo Comentário: