Script de Segurança PHP

25/08/2015

0

PHP

Olá!

Sou novato em PHP. Estou criando um sistema de login com direcionamento para página especifica! O login está pronto, mas totalmente sem segurança... Quando copio o link e colo no navegador, a página abre sem pedir o login... Alguém pode me ajudar?

Segue código:

<?php
if(isset($_POST['usuario'])){
	$servidor = 'localhost'; //Host
	$usuario = 'root'; // User
	$senha = 'vertrigo'; // Senha do User
	$banco = 'login'; // Nome do BD
	
	//Conexao com o BD
	$pdo = new PDO('mysql:host='.$servidor.';dbname='.$banco,$usuario,$senha);
	$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
	
	
	//Recupera o Usuario e Senha
	$usuario = $_POST['usuario'];
	$senha = $_POST['senha']; 
	
	try{
	//Faz o Select da Pagina No Banco
	$sql = $pdo->prepare("SELECT `pagina` FROM `tabela_login` WHERE `usuario`= ? AND `senha`= ? LIMIT 1");
	$sql->execute(array($usuario,$senha));
	
	if($sql->rowCount() > 0 ){
		foreach($sql->fetchAll() as $dados) {
			//Seleciona a Pagina E Redireciona para a pagina cadastrada no banco
			$pagina = $dados['pagina'];
			header('Location:'.$pagina);
		}
		
	}else{
		echo 'Usuario ou Senha Incorretos';
	}
	
	//Se o Usuario e senha Forem Corretos Entra no While
		
		
	}catch(PDOexception $e){
		echo 'Ocorreu um Erro Ao Conectar : '.$e->getMessage();
	}
}
?>
Jonathan Allan

Jonathan Allan

Responder

Post mais votado

26/08/2015

Que bom, meu blog pessoal http://www.devwilliam.com.br/.

William

William
Responder

Mais Posts

26/08/2015

William

Um possível erro está ocorrendo quando vc cria a SESSION :
if($sql->rowCount() > 0 ){
        foreach($sql->fetchAll() as $dados)
        $_SESSION['validado'] = TRUE; {
            //Seleciona a Pagina E Redireciona para a pagina cadastrada no banco
            $pagina = $dados['pagina'];
            header('Location:'.$pagina);
        }
         
    }else{
        $_SESSION['validado'] = FALSE;
        echo 'Usuario ou Senha Incorretos';
    }


O correto:
if($sql->rowCount() > 0 ){
        $_SESSION['validado'] = TRUE; 
        foreach($sql->fetchAll() as $dados)
        {
            //Seleciona a Pagina E Redireciona para a pagina cadastrada no banco
            $pagina = $dados['pagina'];
            header('Location:'.$pagina);
        }
         
}else{
        $_SESSION['validado'] = FALSE;
        echo 'Usuario ou Senha Incorretos';
 }
Responder

26/08/2015

Jonathan Allan

Um possível erro está ocorrendo quando vc cria a SESSION :
if($sql->rowCount() > 0 ){
        foreach($sql->fetchAll() as $dados)
        $_SESSION['validado'] = TRUE; {
            //Seleciona a Pagina E Redireciona para a pagina cadastrada no banco
            $pagina = $dados['pagina'];
            header('Location:'.$pagina);
        }
         
    }else{
        $_SESSION['validado'] = FALSE;
        echo 'Usuario ou Senha Incorretos';
    }


O correto:
if($sql->rowCount() > 0 ){
        $_SESSION['validado'] = TRUE; 
        foreach($sql->fetchAll() as $dados)
        {
            //Seleciona a Pagina E Redireciona para a pagina cadastrada no banco
            $pagina = $dados['pagina'];
            header('Location:'.$pagina);
        }
         
}else{
        $_SESSION['validado'] = FALSE;
        echo 'Usuario ou Senha Incorretos';
 }


Fiz a alteração Willian... Mas o problema ainda continua...
Responder

26/08/2015

William

Verifica se a SESSION está sendo criada!
Responder

26/08/2015

Fabio Santos

Perfeito William, se puder divulgar por aqui eu agradeço!
Responder

26/08/2015

Jonathan Allan

Verifica se a SESSION está sendo criada!


Willian, poderia me explicar como verificar se a SESSION está sendo iniciada? Como disse, sou novato em PHP, estou aprendendo tudo na marra... Agradeço muito...
Responder

26/08/2015

William

Basta adicionar no inicio das páginas internas:
<?php
session_start();
Responder

26/08/2015

Marcio Araujo

Boa tarde Jonathan, segue aí para sua analise, algumas dicas de segurança.

[url]http://blog.thiagobelem.net/principais-falhas-de-seguranca-no-php/[/url]


Obrigado Márcio Araújo! Esse link ajudou muito!


De nada.
Responder

26/08/2015

Jonathan Allan

Basta adicionar no inicio das páginas internas:
<?php
session_start();


Excelente Willian! Muito obrigado! Deu certo! Vou continuar acompanhando suas postagens! Quero aprender mais sobre PHP! Agora só falta criar um script de logout seguro, para destruir as sessões! vou dar uma pesquisada aqui, pra ver o que consigo! Vlw Willian!
Responder

26/08/2015

Fabio Santos

Esse blog não é estranho, acho que tenho aqui guardado.
Responder

28/09/2015

Mauricio Padua

Sessão em cada página?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar