Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, estou usando o seguinte código:
function anti_injection_array($array)
{
foreach($array as $chave => $valor)
{
if (is_array($valor))
{
anti_injection_array($valor);
}
else
{
// remove palavras que contenham sintaxe sql
$valor = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$valor);
$valor = strip_tags($valor);//tira tags html e php
$valor = htmlentities($valor,1);//Converte o que sobrou do strip tags
$return["$chave"] = $valor;
}
}
return $return;
}
$_POST = anti_injection_array($_POST);
$_GET = anti_injection_array($_GET);
Para evitar SQL/HTML injection, mas gostaria de saber por que não e aconselhado. Retirei a linha em vermelho pois como trato todos os campos do formulário pra não ficar aplicando a função um por um.... pois removia os caracters como @ e outros... tem algum problema, sendo que as aspas estão mortas com o htmlentities?
Retirei a função do topico
http://forum.imasters.com.br/index.php?showtopic=125349
Gostaria de uma função que tratasse tudo que é prejudicial ao SQL, mas sem remover nenhum caractere... tem COMO?
como eh essa classe? e addslashes resolve o sql injection?
cara porque tu não usa uma classe de abstração, tipo adoDb, ela ja trata esses problemas alem de facilitar o desenvolvimento, você também pode usar addslashes()
Leia atentamente meu Post e raciocine o porque não posso usar ADDSLASHES, ainda mais que não resolve.....
cara porque tu não usa uma classe de abstração, tipo adoDb, ela ja trata esses problemas alem de facilitar o desenvolvimento, você também pode usar addslashes()