SQL Injection no PHP
Recentemente tive um site invadido onde o próprio invasor me enviou um e-mail mostrando alguns dados do meu banco e dizendo que poderia corrigir o problema mediante pagamento.
Fiz uma analise procurando saber como o site foi invadido. Depois de muito analizar, chego a conclusão que foi por SQL Injection.
Segue abaixo uma alternativa que evita esse tipo de ataque:
Primeiro crie um arquivo com o seguinte conteúdo:
funcoes.inc.php
<? function anti_injection_post($array) { foreach ($array as $key=>$value) { $array[$key] = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|truncate|#|\*|--|\\\\)/"),"",$array[$key]); $array[$key] = trim($array[$key]); $array[$key] = strip_tags($array[$key]); $array[$key] = addslashes($array[$key]); } return $array; } ?>
Posteriormente nos arquivos do site onde você irá usar os arrays $_POST e $_GET use o seguinte no inicio do arquivo:
<? include_once('funcoes.inc.php'); $_POST = anti_injection_post($_POST); $_GET = anti_injection_post($_GET); . . . ?>
Essa função evita que seja inserido instruções sql em campos ou na barra de endereço do seu site.
é isso ai…
Update:
Agradecimento ao meu irmão Andriel pela colaboração.


De nada.