Vendo o Viva o Linux, me deparei com uma ótima função para você tratar os dados que vem do input provavelmente inseridos pelos usuários para que eles não façam o temivel SQL injection em seu site. Não sei até que ponto podemos excluir algumas palavras do usuário, como “from” ou “select” vai que ele realmente escreveu “come from my house” mas está valendo. Eis o código escrito por Alexandro:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?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; } |
Uma coisa legal, aprendi a usar o sql_regcase() do PHP.
Comments
Leave a Comment

Esta, com certeza, não é a maneira mais prática para se prevenir de SQL Injection, rs.
DGmike, essa mesma função foi publicada em 2005 no forum imasters pelo usuario Fabyo, da uma olhada: http://forum.imasters.uol.com.br/index.php?showtopic=125349
Vi no site do viva o linux que o usuario Alexandre postou em 2009. E as duas funções são muito identicas.
Acho que alguem não esta recebendo os devidos creditos hein cara. Afinal no mundo do software livre é muito importante respeitar o trabalho de outras pessoas e manter os devidos creditos.
Abraços.
Bom, e seu usar um editor tipo o TinyMCE e no meu texto ter: select, table…
Vai dar pau não acha?
Uu uso addslashes(); e para exibir stripslashes(); assim se for um sql injetion na hora de exibir já vai ser no tipo string ^^