+ Responder ao Tópico



  1. #1

    Padrão Script PHP para autenticação de usuários Linux

    Estou postando abaixo um script que eu fiz, como contribuição. Qualquer erro me corrijam ai.
    /*aliás, gostaria que comentassem sobre o fato de abrir o arquivo de senhas para leitura, se é perigoso, mesmo a senha sendo encriptada */

    Deise.



    #abrindo o arquivo

    $file = '/etc/shadow'; /*caso não tenha o shadow instalado substituir por /etc/passwd. Obs, o
    usuário do apache precisa ter permissão para ler o arquivo*/

    $open = fopen($file,r);

    #Carrega o usuário e senha
    $user = 'deise';/* aqui vai o post do usuário ex. $_POST[usuario] */
    $pass = 'deise';

    #"Expressão" para encontrar o usuário

    $regex_usu = $user;

    #Expressão para encontrar a senha no arquivo

    $regex_pass = $user.'\[^\:]*)\:';


    if($open){
    $read = fread($open,8192);
    if($read)
    {
    #
    echo "leu o arquivo";
    echo "<br>";
    echo $read;
    echo "<br>";
    #
    ereg($regex_usu,$read,$result_usu);
    ereg($regex_pass,$read,$result_pass);
    #
    echo "usuário:";
    print_r($result_usu[0]);
    echo "<br>";
    #
    echo "Senha:";
    print_r($result_pass[1]);
    echo "<br>";

    if($result_usu[0] == $user)
    {
    echo "usuário correto";
    echo "<br>";
    if (crypt($pass, $result_pass[1]) == $result_pass[1]) {

    echo "Senha correta";
    echo "<br>";
    echo "Autenticação completa";
    echo "<br>";
    }else
    {
    echo "Senha incorreta";
    echo "<br>";
    }
    }else
    {
    echo "Usuário incorreto";
    echo "<br>";
    }
    }else
    {
    echo "Falhou ao ler o arquivo";
    echo "<br>";
    }
    }else{
    echo "Falhou ao abrir o arquivo";
    echo "<br>";
    }

  2. #2

    Padrão

    a regex_pass ficou com aquela carinha na real é : ( sem o espaço no meio.