Página Inicial > PHP, Programação > SQL Injection no PHP

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.

Anderson PHP, Programação ,

  1. Andriel
    9, março, 2010 em 01:12 | #1

    De nada.

  1. Nenhum trackback ainda.