Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

turboibest

Sistema de Login

Recommended Posts

Salve galera,To com o seguinte problema, estou ainda aprendendo Ajax, algumas coisas e já consegui fazer, mais to com o seguinte problema: Estou tentando fazer um sistema de login parecido com do Google, o cara digite login e senha ai verifico na base de dados se ta tudo ok, senão tiver, exibo abaixo do compo senha uma mensagem que login ou senha estão incorretos, até ai consegui chega e ta funcionando certinho. O problema tá quando o login e senha estão corretos, ai eu precisava redirecionar o usuário para a página restrita, mais não consigo fazer isso.Alguém teria uma dica?Desde já agradeço pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não te aconselho a usar AJAX para logins, afinal o javascript é algo facilmente burlável e altamente inseguro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

micox eu tava olhando alguns sites que usão ajax como o googlee me veio uma duvida(esse topico veio bem a acalha)que nem o google deve sabe dessas falhas e possivelmente arrumarao.Mais ai ta a duvidacomo eles conseguirão?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eles não usam ajax pra login.Veja que eles apenas testam a senha antes de submeter para algum processamento sério.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uee.. mais qual o problema gente..

O ajax e o mesmo que uma URL normal...

Apenas carrega por um metodo nativo do browser..

 

A validaçao da senha e login tera de ser por uma linguagem serve-side.. Normal..

Na linguagem claro, terá algumas avaliações para que o login não fure..

 

Valeu... :)

 

(Me corrijam se tiver errado)

 

Olha como o nosso amigo ta fazendo..

 

http://forum.imasters.com.br/index.php?showtopic=180642

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom.. se o google nao faix login, so avalia o login (e a senha) ele tem ki passa os parametros para avaliar.. e se for falta de segurança intao eles realemnte devem ter arrumado.. ou usado otra tecnica diferente.. afinal.. kuando eles descobrem ou inventao algo, eles nao vem postar no forum do imasters auehaueaflw []'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uee.. mais qual o problema gente..O ajax e o mesmo que uma URL normal...Apenas carrega por um metodo nativo do browser..

Isso é verdade pessoal. Realmente eu errei em meu post anterior.Depois que eu escrevi isso aí, eu dei umas viajadas e cheguei a conclusão que é possível sim (através de sessions a segurança fica garantida).Faça o seguinte:1) Coloque seu submit pra submeter para a página verifica.php2) Nesta página, você testa se o login tá certo. Se tiver certo, você ativa uma session indicando que o cara tá logado e retorna a url do pós-login-correto.3) Se a senha não estiver correta, você não seta session nenhuma e retorna um aviso.4) daí lá no ajax, se receber a url-login-correto, é só redirecionar pra ela, ou se receber mensagem de erro exibe a mensagem.té mais...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho um admin de um site ja em funcionamento e acredito que não tenha a ver a segurança com o AJAX em. O problema é mesmo que tinhamos antes do ajax ou seja, no server tem que ser feito uma validação dos dados antes de acessar a base de dados. Eu cheguei a montar a tabela com as principais strings usadas em SQL injection pois já tive problema dessa natureza antes. No ajax, eu envio a requisição para o server para um script php responsavel pelo check do login e retorno 1 se ok e 0 se falhou. Agora no server eu faço diversas verificações antes de confrontar com a base de dados.Existe várias formas que podem ser utiliziadas, umas mais seguras que outras claro.1) O scritp que vai gerar o form, criar um id único para o formulario

// cria chave segurança para o formulario e salva em session$_SESSION['idForm']= uniqid(time( ));

no retorno do form confronta os ids:

if ($_POST['idForm'] != $_SESSION['idForm']) die("Acesso não autorizado. Seu IP ". $_SERVER["REMOTE_ADDR"] . " foi capturado e será enviado aos orgãos competentes por tentativa de ataque a este site!");

Essa forma era muita utilizada mas dava muito pau nas paginas e os clientes reclamavam muito.Como ela funciona:O scritp do form gera o ID baseado no time e para que o usuario mal intencionado possa inserir caracteres maliciosos no form, ele teria que salvar a pagina e fazer o submit em offline, isso faria com que os ID se tornassem diferentes pois quando o form voltasse em off não existiria a variavel session para check.Outra forma seria usar o referrer pra verificar se a pagina ta vindo do site

if ($_SERVER["HTTP_REFERER"]=='')die("Acesso não autorizado. Seu IP ". $_SERVER["REMOTE_ADDR"] . " foi capturado e será enviado aos orgãos competentes por tentativa de ataque a este site!");

mas a forma mais segura que acho é:function value_ok($var, $conn) {// $conn2 = mysql_connect($host,$userDB, $pwdDB);// mysql_select_db($dataBase); $query=mysql_query("SELECT * FROM sql_injection", $conn); while ($res=mysql_fetch_array($query)) { $badchars=$res['seq']; if (stristr($var, $badchars)) { $remotaddr = $_SERVER["REMOTE_ADDR"]; $self = $_SERVER["PHP_SELF"]; $querystring = $_SERVER["QUERY_STRING"]; $useragent = $_SERVER["HTTP_USER_AGENT"]; $remotport = $_SERVER["REMOTE_PORT"]; $referer = $_SERVER["HTTP_REFERER"]; $badchars=addslashes($badchars); $badchars=quotemeta($badchars); $badchars=htmlspecialchars($badchars); $query=mysql_query("insert into sqlInjection_log values(now(),'$remotaddr','$self','$querystring','$useragent','$referer','$badchars')",$conn) or die("Erro 100 - SQLIN" . mysql_error()); return false; } } // while @mysql_free_result($query); return true; }O form é passado para esta function antes de qualquer acesso À base de dados.Essa função procura por strings já utilizadas em ataques SQL Injection. Aúltima vez que fiz uma pesquisa eu levantei quase trinta strings pra essa finalidade:Alguns exemplos de strings utilizadas para burlar logins:

or 0=0 #" or "a"="a" or "x"="x" or 0=0 --") or ("a"="ahi" or 1=1 --

e por ai vai, a lista é grande.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, dêem uma lida aqui pra sacarem dos problemas de segurança em ajax: http://forum.imasters.com.br/index.php?sho...&hl=seguran%E7a

No ajax, eu envio a requisição para o server para um script php responsavel pelo check do login e retorno 1 se ok e 0 se falhou.

Lab design, poste este trecho do código pra nós pois ele pode ser potencialmente perigoso. To com medo de voce estar fazendo do jeito errado e perigoso como o maniacs falou no post que eu passei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.