jnejunior 1 Denunciar post Postado Março 11, 2011 ola galera... gostaria de saber se esta função é boa e queria saber se na linha 7 ele vai tirar as barras caso o get_magic_quotes_gpc() esteja ativo, é isso mesmo? <?php function antiInjection($str) { // se a variável $str não for número if (!is_numeric($str)) { // limpa espaços vazios no começo e no fim da string $str = trim($str); $str = get_magic_quotes_gpc() ? stripslashes($str) : $str; $str = function_exists('mysql_real_escape_string') ? mysql_real_escape_string($str) : mysql_escape_string($str); } return $str; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Março 11, 2011 A função é eficiente sim contra ataques de SQL Injection, inclusive é semelhante a uma função que eu publiquei em um artigo meu sobre o assunto. E você está certo quanto a linha 7, irá remover as barras invertidas caso a diretiva magic_quotes_gps esteja ativa, pois ela adiciona barras inveritdas automaticamente. Um abraço! Compartilhar este post Link para o post Compartilhar em outros sites
Lucas Peperaio 20 Denunciar post Postado Março 11, 2011 A função é eficiente sim contra ataques de SQL Injection, inclusive é semelhante a uma função que eu publiquei em um artigo meu sobre o assunto. E você está certo quanto a linha 7, irá remover as barras invertidas caso a diretiva magic_quotes_gps esteja ativa, pois ela adiciona barras inveritdas automaticamente. Um abraço! No PHP 6 o magic_quotes_gps será removido, recomendo o uso do mysql_real_escape_string() http://www.php.net/manual/pt_BR/function.mysql-real-escape-string.php Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Março 11, 2011 No PHP 6 o magic_quotes_gps será removido, recomendo o uso do mysql_real_escape_string()http://www.php.net/manual/pt_BR/function.mysql-real-escape-string.php por compatibilidade entre bancos, eu ainda prefiro addslashes() afinal se eu usar mysqli, pdo, ou outro banco que não seja MySQL, nao terei mysql_real_escape_.. disponivel. Não lembro bem de onde, mas acho q li sobre mysql_ ser descontinuado. Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Março 11, 2011 @Lucas, A função não utiliza magic_quotes_gps e sim mysql_real_escape_string. Ela apenas verifica se a diretiva magic_quotes_gps está ativa, se estiver faz a remoção das barras invertidas inseridas por ela. @William, Esta função serve apenas para sistemas que utilizam as funções mysql_*. No caso do PDO e mysqli basta usar as funções "prepare" antes de executar a query, assim já irá prevenir contra SQL Injection. Exemplo com PDO: $sth = $pdo->prepare( 'SELECT * FROM usuarios WHERE usuario = ?' ); $sth->execute( array( $_GET['usuario'] ) ); Neste caso não é necessário usar a função addslashes. :) Compartilhar este post Link para o post Compartilhar em outros sites
jnejunior 1 Denunciar post Postado Março 11, 2011 valeu galera, todas as respostas foram de grande ajuda... brigadão Compartilhar este post Link para o post Compartilhar em outros sites