Ir para conteúdo

POWERED BY:

Arquivado

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

berkowitz

Acesso restrito

Recommended Posts

Pessoal, olá.

 

Estou precisando desenvolver uma área para acesso por login e senha, onde se o usuário entrar com a senha errada mais de três vezes, o sistema bloqueia o usuário por 5 minutos, e só depois libera.

Não tenho muitos conhecimentos de lógica de programação, e por isso gostaria de saber se minha aplicação está bem configurada. Alguém poderia dar uma avaliada no meu script por favor?? http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

Obs.: Estou usando banco MYSQL

 

========= validaSenha.asp =========

 

<%	Dim objRS, conexao, caminho	conectarBD "localhost","tabela","user","pass"	Set objRS = conexao.Execute("SELECT * FROM usuarios")		Do While Not objRS.EOF		If Trim(LCase(Request.Form("licitLogin_user"))) = objRS("area") Then			If objRS("tentativas") = 3 Then				If objRS("dataAux") = "0" Then					conexao.Execute("UPDATE usuarios SET dataAux = Minute(Now()) WHERE area = '" & Trim(Request.Form("licitLogin_user")) & "';")				End If				caminho = "index.asp?msg=O limite de tentativas foi alcançado. Tente novamente em 5 minutos."				conexao.Execute("UPDATE usuarios SET tentativas = 0 WHERE MINUTE(NOW()) >= (dataAux + 5) AND area = '" & Trim(Request.Form("licitLogin_user")) & "';")				Exit Do			Else				If Trim(LCase(Request.Form("licitLogin_pass"))) = objRS("senha") Then					caminho = "index.asp?action=ok"					conexao.Execute("UPDATE usuarios SET tentativas = 0, dataAux = 0 WHERE area = '" & Trim(Request.Form("licitLogin_user")) & "';")					Session("userAut") = 1					Exit Do				Else					conexao.Execute("UPDATE usuarios SET tentativas = (tentativas + 1) WHERE area = '" & Trim(Request.Form("licitLogin_user")) & "'")				End If			End If		Else			caminho = "index.asp?msg=Usuário não autenticado"		End If				objRS.MoveNext	Loop		fechaConexao		Response.Redirect caminho%>
VALEWWWWWWW!!! :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual a logica que voce ta usando ???geralmente é melhor definir a logica antes de programar a solução...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu pensei no seguinte: - Primeiro conecto ao bd; - Depois faço um laço para percorrer as linhas do meu bd; - Depois verifico se o usuário digitado no campo correspondente existe no bd; - Se existir, verifico se já foram feitas 3 tentativas de acesso; - Se sim, verifico se o campo da data auxiliar (que utilizo para cadastrar o minuto atual que o usuário fez a 3ª tentativa de acesso) está com valor 0; - Se tiver, executo uma instrução no bd para inserir no campo de data auxiliar o minuto atual, para utilizá-lo futuramente no processo de liberação da senha após 5 minutos da 3ª tentativa; - Após isso, atribuo à variável CAMINHO a url ideal para este tratamento; - Após, executo uma instrução no bd para zerar o campo TENTATIVAS caso o minuto atual for maior que o cadastrado no bd + 5; - Após, saio do looping. - Se o número de tentativas for menor que 3, então verifico se a senha está correta; - Se estiver, atribuo à variável CAMINHO a url ideal para este tratamento; - Após, zero os campos de TENTATIVAS e DATA AUXILIAR no bd; - Após, crio uma sessão afirmando que o usuário está autenticado, para proibir acesso ao sistema para os usuários não autenticados; - Após, saio do looping; - Se a senha estiver errada, adiciono 1 no campo tentativas; - Se o usuário e a senha estiverem incorretos, atribuo à variável CAMINHO a url ideal para este tratamento; - Após isso, avanço uma linha no bd e termino o laço; - Após isso, fecho a conexão com o bd; - Finalizando, redireciono o usuário para a url adequada, a qual foi gerada no script acima através da variável CAMINHO.Então... é isso que v queria saber cara??? Está certo o que tentei fazer??? :huh: VALEWWW!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

o que tiver sem comentario é por que eu faria assim provavelmente

 

- Primeiro conecto ao bd;

 

- Depois faço um laço para percorrer as linhas do meu bd;

por que?? acho que basta selecionar o registro quando o login for igual

 

- Depois verifico se o usuário digitado no campo correspondente existe no bd;

se ai em cima voce verificar esta fase fica inutil

 

- Se existir, verifico se já foram feitas 3 tentativas de acesso;

 

- Se sim, verifico se o campo da data auxiliar (que utilizo para cadastrar o minuto atual que o usuário fez a 3ª tentativa de acesso) está com valor 0;

não precisa disso eu acho voce deve é ter um campo de data hora pra evitar erros

 

 

 

- Se tiver, executo uma instrução no bd para inserir no campo de data auxiliar o minuto atual, para utilizá-lo futuramente no processo de liberação da senha após 5 minutos da 3ª tentativa;

ta certa a analise mas pense no que disse na mundança de horas e na de dias voce perderá o controle guadando apenas o minuto

 

- Após isso, atribuo à variável CAMINHO a url ideal para este tratamento;

 

- Após, executo uma instrução no bd para zerar o campo TENTATIVAS caso o minuto atual for maior que o cadastrado no bd + 5;

 

- Após, saio do looping.

não precisa de looping ainda mais se sua base for muito grande, ave maria não vai prestar

 

- Se o número de tentativas for menor que 3, então verifico se a senha está correta;

 

 

 

- Se estiver, atribuo à variável CAMINHO a url ideal para este tratamento;

 

- Após, zero os campos de TENTATIVAS e DATA AUXILIAR no bd;

 

- Após, crio uma sessão afirmando que o usuário está autenticado, para proibir acesso ao sistema para os usuários não autenticados;

 

- Após, saio do looping;

acaba com estes loops

 

- Se a senha estiver errada, adiciono 1 no campo tentativas;

 

- Se o usuário e a senha estiverem incorretos, atribuo à variável CAMINHO a url ideal para este tratamento;

 

- Após isso, avanço uma linha no bd e termino o laço;

esta aqui não entendi...

 

- Após isso, fecho a conexão com o bd;

 

- Finalizando, redireciono o usuário para a url adequada, a qual foi gerada no script acima através da variável CAMINHO.

 

 

O LOOP ta complicando..., é menos ruim fazer dois selects apenas

 

um com o LOGIN e depois se existir o bixo com LOGIN e SENHA

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.