Hoje neste mini tutorial vou trazer uma dica de SQL Injection. Esta dica foi passada para mim pelo meu amigo Rodolfo Silva e visitante do Blog. Esta maneira além de ser usado para SQL Injection pode-se reaproveitar a técnica em outras ocasiões.

O conceito é simples, ele vai pegar toda o array $_POST ou $_GET e passar por ele e ir escapando e salvando com o mesmo nome.
E não ocorre nenhum problema se você deixar este código sendo executado todas as vezes.

No meu caso eu utilizei da seguinte forma. Eu sempre crio um arquivo de startUp.php e neste arquivo eu incluo a conexão com o Banco de Dados e após isto eu coloco o código proteção contra SQL Injection.
E chamo este startUp.php em todas as paginas.

O script PHP que faz isto é este:

foreach($_POST as $key => $value){
$_POST[$key] = mysql_real_escape_string($value);
}
foreach($_GET as $key => $value){
$_GET[$key] = mysql_real_escape_string($value);
}

OBS: Para utilizar este código tem que estar estabelecido
Neste exemplo utilizamos a função foreach que faz um loop passando por todos os itens de um array. A função foreach foi demonstrada na vídeo aula Curso PHP – Módulo Iniciante – Aula 03 – PHP Array.

Agora vou criar uma situação comum na vida dos usuários.
Vamos imagina que você esta tendo problema de codificação de acentos no seu site. Problemas comuns com a compatibilidade de UTF-8 ou ISO-8859-1.

A solução comum dos usuários é utilizar o seguinte script PHP.

$nome = utf8_encode($_POST['nome']);
$sobrenome = utf8_encode($_POST['sobrenome']);
$assunto = utf8_encode($_POST['assunto']);

Outro exemplo de script PHP comum na hora de exibir o texto na tela.

echo utf8_encode($registro['nome']);
echo utf8_encode($registro['sobrenome']);
echo utf8_encode($registro['assunto']);

Para resolver estes problemas de uma forma mais rápida, pode-se utilizar.

foreach($_POST as $key => $value){
$_POST[$key] = utf8_encode($value);
}
/*ou*/
foreach($registro as $key => $value){
$registro[$key] = utf8_encode($value);
}

Espero que eu tenha ajudado a vocês com este mini tutorial.