[Ajuda] Verificaзгo Senha Salt
#1

Saudaзхes

A Algum tempo eu venho tentando descobrir como recuperar o salt da conta do usuбrio, utilizando o php para um futuro sistema de login.
Via pm RodrigoMSR me tirou algumas duvidas sobre o mesmo assunto, Eu sou grato a ele, mas eu venho ainda quebrando a cabeзa.

Para cada usuбrio novo й gerado uma senha HASH Aleatуria, e em PHP eu nгo consigo recuperar a senha de cada usuбrio

Aqui ela й criada .pwn
PHP код:
for (new 010i++)
{
   
PlayerInfo[playerid][senha_Salt][i] = random(79) + 47;
}
pInfo[playerid][senha_Salt][10] = 0;
SHA256_PassHash(inputtextpInfo[playerid][senha_Salt], pInfo[playerid][Senha], 65); 
E aqui й o Script PHP, sу tenho isso ate agora
PHP код:
<?php  
    
include 'conexao.php';
    if(isset(
$_POST['entrar'])) {
        
$usher_nome            $_POST['usher_nome'];
        
$usher_senha         strtoupper(hash("sha256"$_POST['usher_senha'] . $HASH_SENHA));
        
$sql "SELECT * FROM players WHERE nome = '$usher_nome' AND senha = '$usher_senha' ";
         
$query mysqli_query($con,$sql) or die ("ERRO... Discriзгo : " mysqli_error($con));
         
$qtda mysqli_num_rows($query); 
        if (
$qtda == 0) {
            echo 
"Nome de usuario ou senha invalida";
        }else{
            
$_SESSION['logado'] = $usher_nome;
            
header("Location: logado.php");
        }
        
    }
?>
O que eu entendi ate agora foi, quando eu realizar o login no formulбrio o script tem q checar se aquela HASH_SENHA й do nome de usuбrio, eu acho que й assim.

Alguйm pode me mostrar o caminho, ja realizei varias pesquisas e nada encontrei.
Reply
#2

Em $HASH_SENHA vocк deve definir o hash criado para o jogador e depois fazer a verificaзгo.
PHP код:
<?php
    
include 'conexao.php'
    if(isset(
$_POST['entrar']))
    {
        
$usher_nome mysqli_real_escape_string($_POST['usher_nome']);
        
        
$query mysqli_query($con"SELECT * FROM players WHERE nome = '$usher_nome'") or die ("ERRO... Discriзгo : " mysqli_error($con)); 
        
        if(
mysqli_num_rows($query))
        {
            
$pInfo mysqli_fetch_assoc($query);
            
$HASH_SENHA $pInfo['PassHash']; //Substitua pela coluna onde й armazenado o hash
            
            
$senha strtoupper(hash("sha256"$_POST['usher_senha'] . $HASH_SENHA));
            if(
$senha === $pInfo['senha'])
            {
                
$_SESSION['logado'] = $usher_nome
                
header("Location: logado.php"); 
            }
            else
            {
                echo 
"Senha incorreta"
            }
        }
        else
        {
            echo 
"Nome de usuario invalido"
        }
    }
?>
Reply
#3

RodrigoMSR Perfeito, Finalmente eu consegui entender, Graзas a vocк, Muito Obrigado.

Outra coisa, por q usar
PHP код:
mysqli_real_escape_string 
Reply
#4

Isso previne SQL Injection, por exemplo:
PHP код:
SELECT FROM players WHERE nome '$usher_nome' 
Imagine que o usuбrio digitou Test' OR '1'='1, entгo a query final ficaria como:
PHP код:
SELECT FROM players WHERE nome 'Test' OR '1'='1' 
E isso daria ao usuбrio acessos indesejados.
Reply
#5

mysqli ;;---;

@Edit vai ter uma mensagm util aqui
Reply
#6

Ja ouviu falar de PDO ?
http://php.net/manual/pt_BR/class.pdo.php
https://sampforum.blast.hk/showthread.php?pid=3609795#pid3609795
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)