frnd Postado Outubro 1, 2008 Denunciar Share Postado Outubro 1, 2008 estou colocando uma maneira de evitar invasões com o sql injection... assim$usuario = $_POST['usuario']; $senha = $_POST['senha']; $usuario_escape = $usuario; $senha_escape = $senha; $sql = "SELECT * FROM usuario WHERE cod_usu = '{$usuario_escape}' AND senha_usu = '{$senha_escape}' ";eu coloco o user e senha que estão iguais no banco de dados, mas dá como inválidos!porque ?[]s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jissa Postado Outubro 1, 2008 Denunciar Share Postado Outubro 1, 2008 (editado) Olá..eu faço assim, tenho uma função que checa alguns dados se forem passados e uso o str_replace para trocar por branco "" limpando o que foi enviado, segue abaixo um exemplo de como fazer pode adicionar outros caracteres, estes ai são os principais que utilizam;function sql_injection( $s ) { $s = str_replace("\'","",$s); $s = str_replace("'","",$s); $s = str_replace("'or","",$s); $s = str_replace("'or'","",$s); $s = str_replace("or'","",$s); $s = str_replace("=","",$s); $s = str_replace("Select","",$s); return $s; } "Select * from usuario where cod_usu = '".sql_injection( $_POST["usuario"] )."' and senha_usu = '".md5( sql_injection( $_POST["senha"] ) )."' order by id Asc Limit 1" **editando - neste caso usei o md5 se não usar "Select * from usuario where cod_usu = '".sql_injection( $_POST["usuario"] )."' and senha_usu = '".sql_injection( $_POST["senha"] )."' order by id Asc Limit 1" Editado Outubro 1, 2008 por jissa Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jasar Postado Outubro 1, 2008 Denunciar Share Postado Outubro 1, 2008 e c fizesse aquele eregi_replace com tudo q não for numero e texto ele da um replace vasio? daria pra filtrar todas variaveiz d uma vez não? alguém manja? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jissa Postado Outubro 1, 2008 Denunciar Share Postado Outubro 1, 2008 o Fabyo fez uma vez uma que implementamos na epocaficaria +- assim.. function anti_injection($sql) { $sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql); $sql = trim($sql);//limpa espaços vazio return $sql; } $nome = anti_injection($_POST["nome"]); $senha = anti_injection($_POST["senha"]);}da para colocar tambem strip_tags para remover os htmnl caso enviadosaddslashes para colocar barra invertida Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jasar Postado Outubro 1, 2008 Denunciar Share Postado Outubro 1, 2008 isso também serve otimo script Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
frnd
estou colocando uma maneira de evitar invasões com o sql injection... assim
eu coloco o user e senha que estão iguais no banco de dados, mas dá como inválidos!
porque ?
[]s
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.