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: