Ir ao conteúdo
  • Cadastre-se

PHP Implementar CSRF em login com php


Posts recomendados

Olá pessoal boa noite,

 

Pessoal eu tenho um login em meu sistema, é um login bem básico se constituem em apenas dois campos e-mail e senha(criptografa por MD5), porém queria colocar uma segurança a mais, no caso queria colocar CSRF, estava fazendo alguns teste e não consegui, vocês poderiam me ajudar por favor

Desde já muito Obrigado

 

pagina de login

  <div class="container">
          <div class="row">
              <div class="col-sm-2">

              </div>
              <div class="col-sm-8">
                <form class="block-form" method="POST" action="valida.php">
                  <h2 class="text-center">Área Restrita</h2>
                  <div class="form-group">
                    <input type="email" name="email" id="inputEmail" class="form-control" placeholder="Email" required autofocus>
                  </div>
                  
                  <div class="form-group">
                    <input type="password" name="senha" id="inputPassword" class="form-control" placeholder="Senha" equired>
                  </div>
                  
                  <button class="btn btn-lg btn-danger btn-block" type="submit">Acessar</button>
                </form>
                <p class="text-center text-danger">
                  <?php if(isset($_SESSION['loginErro'])){
                    echo $_SESSION['loginErro'];
                    unset($_SESSION['loginErro']);
                  }?>
                </p>
                <p class="text-center text-success">
                  <?php 
                  if(isset($_SESSION['logindeslogado'])){
                    echo $_SESSION['logindeslogado'];
                    unset($_SESSION['logindeslogado']);
                  }
                  ?>
                </p>
              </div>
              <div class="col-sm-2">

              </div>
          </div>
      </div>

 

 

Pagina que valida se usuário esta correto ou não redireciona para o Dashboard 

<?php
	//$sessionTeste = session_name(md5('seg'.$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT']));
	session_start();
	include_once("../function/conection/conexao.php");	
	if((isset($_POST['email'])) && (isset($_POST['senha']))){
		$usuario = mysqli_real_escape_string($conn, $_POST['email']);
		$senha = mysqli_real_escape_string($conn, $_POST['senha']);
		$senha = md5($senha);

		$result_usuario = "SELECT * FROM usuarios WHERE email = '$usuario' && senha = '$senha' LIMIT 1";
		$resultado_usuario = mysqli_query($conn, $result_usuario);
		$resultado = mysqli_fetch_assoc($resultado_usuario);
		
		if(isset($resultado)){
			$_SESSION['usuarioId'] = $resultado['id'];
			$_SESSION['usuarioNome'] = $resultado['nome'];
			$_SESSION['menu'] = $resultado['menu'];
			$_SESSION['ftUser'] = $resultado['ftUser'];
			$_SESSION['usuarioNiveisAcessoId'] = $resultado['niveis_acesso_id'];
			$_SESSION['usuarioEmail'] = $resultado['email'];
			if($_SESSION['usuarioNiveisAcessoId'] == "1"){
				header("Location: models/adm/");
				die();
			}elseif($_SESSION['usuarioNiveisAcessoId'] == "2"){
				header("Location: models/admhospital/");
				die();
			}
		}else{	
			$_SESSION['loginErro'] = "Usuário ou senha Inválido";
			header("Location: index.php");
			die();
		}
	}else{
		$_SESSION['loginErro'] = "Usuário ou senha inválido";
		header("Location: index.php");
		die();
	}
?>

 

 

Link para o comentário
Compartilhar em outros sites

@vinissant7 Abaixo um exemplo bem simples que implementei.

 

public function verifyCSRF(string $token) : boolean
    {
        if ($token == Container::getData('csrf_token')) :
            return true;
        endif;

        return false;
    }

 

Container: corresponde a classe que armazena e retorna os dados da sessão.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...