Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tava olhando como me proteger desse sql injection e achei aqui mesmo no forum essa função:
<?php function anti_injection($sql)
{
// remove palavras que contenham sintaxe sql
$sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql);
$sql = trim($sql);//limpa espaços vazio
$sql = strip_tags($sql);//tira tags html e php
$sql = addslashes($sql);//Adiciona barras invertidas a uma string
return $sql;
}
Mas não me contentei e continue pesquisando e me veio a duvida.
1.: Qual é mais eficiente, o mysql_real_escape_string() ou o addslashes()?
Também li que é possivel burlar o addslashes() com um conjuntos de caracteres de vários bytes ( ' → 0 0 1 0 0 1 1 1).
2.: Então o que eu poderia adcionar a essa função para ela ser quase totalmente segura?
PDO previne totalmente sql injection???
PDO não, propared statement se utilizado da forma correta, sim.
Tem algum exemplo de como usar o propared statement de forma correta?
Já postei sobre isso várias vezes, o tópico que eu considero mais completo sobre o assunto:
Ele explica mas não mostra como fazer
O Beraldo tem um artigo mostrando como usar ... me ajudou muito :)
Ele explica mas não mostra como fazer
Realmente, T.I. não é pra todo mundo...
>
Realmente, T.I. não é pra todo mundo...
Concordo, principalmente para aqueles que se acham o "bam bam bam".
Concordo, principalmente para aqueles que se acham o "bam bam bam".
Que bom que chegamos a um denominador comum.
Use prepared statements, essa função ai é totalmente obsoleta e ineficaz.