Pesquisar na Comunidade
Mostrando resultados para as tags ''sql''.
Encontrado 1 registro
-
Abaixo segue um Código que parace seguro até que o conheça e faça valer o contrário. <?php include("conexao.php"); $login = "admin"; $senha = "********"; $busca = "SELECT * FROM tabelaLogin WHERE login = '$login' OR 1 and senha = '$senha'"; $busca = "SELECT * FROM tabelaLogin WHERE login = 'admin' OR 1 and senha = '********'"; // ateh aqui pode se observar que esta tudo ok // o autenticacao vai acontecer normalmente pois foi fornecido o login e a senha de forma correta //------------------------------------------------------------------------------------------------------------------------- // mais digamos que eu nao tenha a senha e use o login = "admin" entao eu ja tenho 50 porcento de chance e // agora soh falta advinhar a senha certo ? // R: ERRADO se o site esta vuneravel a Injecao SQL eu praticamente ja tenho 100 porcento. $login = "admin"; $senha = "' or '1=1"; $busca = "SELECT * FROM tabelaLogin WHERE login = '$login' OR 1 and senha = '$senha'"; $busca = "SELECT * FROM tabelaLogin WHERE login = 'admin' OR 1 and senha = '' or '1=1'"; // por Logica o que se pode observar eh admin E nada OU 1 = true // V E F OU V = V // a busca vai retorna verdadeiro o seja Logado como ADMIN // isso para facil porque ja tem o login = admin, na verdade login nem eh necessario $login = "' or '1=1"; $senha = "' or '1=1"; $busca = "SELECT * FROM tabelaLogin WHERE login = '$login' OR 1 and senha = '$senha'"; $busca = "SELECT * FROM tabelaLogin WHERE login = '' or '1=1' OR 1 and senha = '' or '1=1'"; // por logica denovo nada OU 1 E nada OU 1 = true // F OU V E F OU V = V // denovo Logado sem a necessidade de nenhum dado de acesso //------------------------------------------------------------------------------------------------------------------------- Uma forma bastante que ajuda eh limitar no formulario o tamanho dos campos Login e Senha Outra maneira que realmente funciona eh filtrar todos dados retirando aspas simples, duplas, espacos em branco barras e tudo que nao seja digito e numero antes de inseri-los em uma busca sql. // retira os codigos html do login e retira as aspa simples $login = str_replace("'","",strip_tags($login)); // retira os codigos html da senha, retira as aspa simplese criptografa antes de compara-la no banco de dandos $senha = crypt(str_replace("'","",strip_tags($senha))); //Agora sim pode se dizer que o codigo esta um pouco seguro Feito pela PhpBrasil