1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Autenticação do username e password

Discussão em 'Web Development' iniciada por joaopj, 31 de Agosto de 2007. (Respostas: 1; Visualizações: 612)

  1. joaopj

    joaopj Power Member

    Olá pessoal, eu tenho cá umas dúvidas.
    Eu tenho uma página que só deve ser acessada por mim, e já tentei o metodo do .htaccess, mas isto não funciona lá muito bem, porque vou sempre parar à página de erros 401 que diz autorização requerida, então estou a tentar fazer isto em PHP.

    Quando alguém entrar na página, vai-se deparar com o "index.html", que é o seguinte:
    Código:
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    
    <head>
      <title>Olá João</title>
      <meta name="GENERATOR" content="Quanta Plus" />
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <style type="text/css">
      /* <![CDATA[ */
    body{background:#211E20 url('bg-stripe.png') repeat;color:#AFAFAF;font-family:Verdana;}
    #wrap{margin:0 auto;width:800px;}
    input{width:800px;font-size:4em; border:1px #9F0 dashed;background:#211E20 url('bg-stripe.png') repeat;color:#F90; margin-top:1em;text-align:center;}
      /* ]]> */
      </style>
    </head>
    <body>
    <div id="wrap">
        <form action="createpost.php" method="post">
            <input id="username" type="text" name="username" size="16" /><br />
            <input id="password" type="password" name="password" size="16" /><br />
            <input type="submit" value="Entrar" />
        </form>
    </div>
    
    </body>
    </html>
    Como podem ver, nesta form só há um espaço para inserir um username e a password, e depois "exportá-los" para o "createpost.php" que está no mesmo folder (será que isto é boa ideia ?).

    Depois de inserir o username e a password, vamos ao "createpost.php", onde eu tentei fazer lá a autenticação... que deve tar uma boa marmelada lol...

    No topo do file, temos isto:
    PHP:
    <?php
    // ob_start("ob_gzhandler");
    $username "username";
    $password "password";

    if (!isset(
    $_POST["username"]) && !isset($_POST["password"])) { header('http://joaojeronimo.freehostia.com/errors/?error=401'); exit; }
    if (
    $_POST["username"] == $username && $_POST["password"] == $password) { $rejeitado FALSE; } else { $rejeitado TRUE; }
    if (
    $rejeitado) { header('Location: http://joaojeronimo.freehostia.com/errors/password-errada.html'); exit; }

    header("Cache-Control: no-cache, must-revalidate");
    header('Content-type: text/html; charset=UTF-8');
    print 
    "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
    ?>
    Isto está certo ?
    Até ao momento parece funcionar no entanto ainda é possivel entrar directamente na página sem passar pelo "index.html", o que significa que o
    PHP:
    if (!isset($_POST["username"]) && !isset($_POST["password"])) { header('http://joaojeronimo.freehostia.com/errors/?error=401'); exit; }
    não está a funcionar...

    É a primeira vez que estou a aventurar-me a fazer uma coisa destas e gostaria da vossa ajuda para fazer a minha página mais "hacker proof" lol...

    Obrigado
     
  2. mcog_blaster

    mcog_blaster Power Member

    Hum...funciona comigo.
     

Partilhar esta Página