Anti SQL Injection
Fala Galera, blza?
Andei lendo bastante na internet sobre SQL Injection e como evitá-lo. Achei muito material bom, mas continuo com algumas dúvidas.
A principal é: Porque não utilizar o htmlentities?? Não é mais simples converter toda a entrada de informação em caracteres HTML ao recebê-la? Desta forma seria dispensável um tratamento posterior (na extração do banco, por exemplo) como o stripslashes. Estou errado?
Montei um arquivo com o seguinte código e pretendo utilizá-lo em todas as páginas do meu site afim de evitar o SQL Injection. Pf, deêm suas opniões, sugestões e correções:
function anti_sql_injection($v) {
$r = htmlentities($v); // Converte tudo pra entidades HTML
$r = str_replace("'", '′', $r); // Substitui a aspas simples por uma entidade HTML similar
$r = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$r); // Remove comandos SQL [vlw Fabyo]
$r = addslashes($r); // Por fim, caso tenha passado algo, insere as contrabarras
return $r;
}
// Aplica o anti_sql_injection aos inputs
$_GET = array_map('anti_sql_injection', $_GET);
$_POST = array_map('anti_sql_injection', $_POST);
$_REQUEST = array_map('anti_sql_injection', $_REQUEST);
$_COOKIE = array_map('anti_sql_injection', $_COOKIE);
Desde já, agradeço à atenção de todos!
Abs
Discussão (13)
Carregando comentários...