Pular para o conteúdo

Função Anti MySQL Injection - Proteja sua aplicação!

Função que evita ataques do tipo MySQL Injection.

O uso de uma função deste tipo hoje em dia é obrigatório para se obter o mínimo de segurança. Deve ser utilizada em todas as variáveis que contiverem dados informados pelos usuários!

Para incluir no seu script, utilize a seguinte linha:

include_onde('anti_injection.php');

Exemplo de uso:

$nome = anti_injection($_POST['nome']);

Então a variável $nome estará segura para utilizar em consultas SQL.
Perfil removido removido
Hits: 26.349 Categoria: PHP Subcategoria: Segurança
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Função que evita ataques do tipo MySQL Injection.

O uso de uma função deste tipo hoje em dia é obrigatório para se obter o mínimo de segurança. Deve ser utilizada em todas as variáveis que contiverem dados informados pelos usuários!

Para incluir no seu script, utilize a seguinte linha:

include_onde('anti_injection.php');

Exemplo de uso:

$nome = anti_injection($_POST['nome']);

Então a variável $nome estará segura para utilizar em consultas SQL.
Download anti_injection.php Enviar nova versão

Esconder código-fonte

<?php

# Função Anti MySQL Injection - Proteja suas aplicações!
# Por Alexandro G. Correa - Porto Alegre - RS
# alex.linux (at) gmail.com
# 13/03/2009

function anti_injection($sql){
   $sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"), "" ,$sql);
   $sql = trim($sql);
   $sql = strip_tags($sql);
   $sql = (get_magic_quotes_gpc()) ? $sql : addslashes($sql);
   return $sql;
}

?>

Página protegida

Geração de chaves Diffie-Hellman

Gravando log de erros gerados em consultas SQL

Usuário Samba + LDAP alterando sua senha pelo browser

Easy Login !!! OTIMO LOGIN !!!

#1 Comentário enviado por removido em 14/03/2009 - 14:00h
Amigos, apenas uma correção. O correto para incluir o script em seu site é:

include_once('anti_injection.php');

Um abraço!
Alex.
#3 Comentário enviado por removido em 14/03/2009 - 17:15h
Se analisar o código, a mysql_real_escape_string é menos completa. O que posso garantir é que o script que publiquei sempre resolveu os problemas e nunca houve nenhum ataque de MySQL Injection bem-sucedido.
#4 Comentário enviado por pedroarthur.jedi em 16/03/2009 - 12:29h
Boa... Mas se o texto for em inglês? Ou se o sujeito quiser mandar o outro digitar a tecla 'insert' do teclado?
#5 Comentário enviado por removido em 16/03/2009 - 14:47h
Pedro, esta função pode ser utilizada em qualquer idioma... a linguagem SQL tem um padrão internacional. Sobre digitar "insert", não entendi mesmo...
#6 Comentário enviado por ferlopes em 17/06/2016 - 11:47h
Muitos anos depois, mas vem ao caso:

Sobre digitar insert: se uma pessoa escrever qualquer palavra "delete", ou "insert" no meio de um texto, por exemplo, um texto técnico, ele simplesmente vai substituir por ''...

Contribuir com comentário

Entre na sua conta para comentar.