Commit e7c2fcbc33535225f829d631fef569ae91c812e4

Authored by Edmar Moretti
1 parent 61ff58c3
Exists in master

Inclusão de verificação de tentativas de login, máximo de 3 última hora

admin/php/login.php
... ... @@ -115,6 +115,11 @@ switch (strtoupper($funcao))
115 115 $senha = $_POST["senha"];
116 116  
117 117 $teste = autenticaUsuario($usuario,$senha);
  118 + if($teste == "muitas tentativas"){
  119 + logoutUsuario();
  120 + header ( "HTTP/1.1 403 Muitas tentativas" );
  121 + exit;
  122 + }
118 123 if($teste != false){
119 124 $_SESSION["usuario"] = $usuario;
120 125 $_SESSION["id_usuario"] = $teste["usuario"]["id_usuario"];
... ... @@ -290,11 +295,26 @@ function autenticaUsuario($usuario,$senha){
290 295 include(dirname(__FILE__)."/conexao.php");
291 296 $senhamd5 = md5($senha);
292 297 $senhaHash = password_hash($senha, PASSWORD_DEFAULT);
  298 + //faz um teste de tentativas de acesso
  299 + $nomeArquivo = $dir_tmp."/a".md5($usuario."testeTentativas").intval(time() / 1000);
  300 + if(!file_exists($dir_tmp)){
  301 + return false;
  302 + }
  303 + if(file_exists($nomeArquivo)){
  304 + $tentativas = (int) file_get_contents($nomeArquivo);
  305 + if($tentativas > 3){
  306 + return "muitas tentativas";
  307 + }
  308 + $tentativas = $tentativas + 1;
  309 + file_put_contents($nomeArquivo, $tentativas);
  310 + }
  311 + else {
  312 + file_put_contents($nomeArquivo, 1);
  313 + }
293 314 //verifica se o usuario esta cadastrado no ms_configura.php em $i3geomaster
294 315 //echo "select * from ".$esquemaadmin."i3geousr_usuarios where login = '$usuario' and (senha = '$senhamd5' or senha = '$senha') and ativo = 1";exit;
295 316 //exit;
296 317 if(verificaMaster($usuario,$senha) == true){
297   -
298 318 $pa = pegaDados("select * from ".$esquemaadmin."i3geousr_papelusuario ",$dbh,false);
299 319 $op = pegadados("SELECT O.codigo FROM ".$esquemaadmin."i3geousr_operacoes AS O",$dbh,false);
300 320 $gr = pegadados("SELECT * from ".$esquemaadmin."i3geousr_grupos ",$dbh,false);
... ... @@ -317,6 +337,7 @@ function autenticaUsuario($usuario,$senha){
317 337 $r = array("usuario"=>$master,"papeis"=>$papeis,"operacoes"=>$operacoes,"gruposusr"=>$gruposusr);
318 338 $dbh = null;
319 339 $dbhw = null;
  340 + file_put_contents($nomeArquivo, 1);
320 341 return $r;
321 342 }
322 343 else{
... ... @@ -362,6 +383,7 @@ function autenticaUsuario($usuario,$senha){
362 383 $r = array("usuario"=>$dados[0],"papeis"=>$papeis,"operacoes"=>$operacoes,"gruposusr"=>$gruposusr);
363 384 $dbh = null;
364 385 $dbhw = null;
  386 + file_put_contents($nomeArquivo, 1);
365 387 return $r;
366 388 }
367 389 else{
... ...
ferramentas/loginusuario/dicionario.js
1 1 //+$trad(1,i3GEOF.loginusuario.dicionario)+
2 2 i3GEOF.loginusuario.dicionario = {
3   - 1 : [ {
4   - pt : "",
  3 + "tentativas" : [ {
  4 + pt : "Após 3 tentativas, tente mais tarde",
5 5 en : "",
6 6 es : ""
7 7 } ]
... ...
ferramentas/loginusuario/template_mst.html
... ... @@ -2,6 +2,7 @@
2 2 <p class='paragrafo'>
3 3 {{{ativo}}}: <b><i>{{{usuarioLogado}}}</i></b>
4 4 <p class='paragrafo'>{{{usuario}}}:</p>
  5 + <p class="paragrafo">{{{tentativas}}}</p>
5 6 <div class='i3geoForm i3geoFormIconeUsuario'>
6 7 <input id=i3geousuario type=text value=''/>
7 8 </div>
... ...
ferramentas/loginusuario/template_mst_bt.html
... ... @@ -34,6 +34,7 @@
34 34 <div class="row">
35 35 <div class="col-md-12">
36 36 <h6 class="text-muted">{{{ativo}}}: {{{usuarioLogado}}}</h6>
  37 + <h6 class="text-info">{{{tentativas}}}</h6>
37 38 </div>
38 39 </div>
39 40 </li>
40 41 \ No newline at end of file
... ...