Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

walace

Autenticação em Pastas

Recommended Posts

Como não achei no fórum um local para isso e esta dúvida é meio que frequente na seção php, resolvi postar aqui.

 

Serve para quando se quer autenticar a entrada em pastas, mas esta autenticação que aparece na imagem anexada:

 

- Criar arquivo de senhas:

htpasswd -cdps /pasta_do_arq_de_senha usuario

 

o htpasswd.exe está no subdiretório bin do Apache.

 

Será pedida a senha em seguinda

 

Para criar mais usuários retire a opção c do parâmetro.

 

- No .htaccess:

AuthName "Pasta Restrita"

AuthType Basic

AuthUserFile d:/pages ; pasta para autenticação

require valid-user

 

 

Blzma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Comigo isso ñ funciona, ñ sei pq.Somente consigo fazer a autenticação de pastas, se colocar as linhas abaixo no arquivo, httpd.conf do Apache:<Location /Pasta/>AuthName "Area Restrita" AuthType basicAuthUserFile "d:/www/server/.senha"Require valid-user </Location> Já pesquisei mto sobre o .htaccess, mas nda!!!! Só desta maneira msm.Sugestão?!?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente é estranho msm, porém só funciona desta maneira.É tipo como se o apache nem le-se o .htaccess, pois já tentei utilizar algumas outras funções deste arquivo e nenhuma funciona!!!!Estranho!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi a parte em que o arquivo de senhas é criado. qual o formato dele?

 

Um Abraço.

 

Imagem Postada

O formato ele eu não sei, deve ser texto, mas se você der um type aparecerá o usuário e a senha criptografada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Instalei o Apache no meu computador e nunca testado esse tipo de autenticação. Depois de ver esse mesmo artigo citado do site numaboa, tentei fazer, mas O APACHE IGNORAVA O ARQUIVO .htaccess.

 

Depois de mexer bastante, vi que ele não vem configurado mesmo para ler esses arquivos.

 

 

De uma olhada no seu httpd.conf. se quiser, faça uma busca usando AllowOverride, acho que você vai direto para o parametro que deve ser modificado para ele aceitar os .htaccess

AllowOverride none

 

Verifique também AccessFileName, deve estar escrito .htaccess (você pode modificar).

 

 

Para criar um arquivo sem nome no Windows, abra o bloco de notas e salve como .htaccess ....

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php/******************************** BY MRS *********************************/ob_start();require "../banco.php"; if(!isset($PHP_AUTH_USER)) // verifico se a variavel existe.. { header("WWW-Authenticate: basic realm=\"Um nome qualquer para a caixa\""); header("HTTP/1.0 401 Unauthorized"); echo "<meta http-equiv=\"refresh\" content=\"0;URL=http://www.cracco.com.br/restrita/cancelado.php\">"; // se ela não existit mando para cancelado exit; } else // mas se ela existir verifico se ela é valida { $sql = "SELECT * FROM restrito WHERE nome='$PHP_AUTH_USER' AND guardasenhas='$PHP_AUTH_PW'"; $consulta = mysql_query($sql); while($pegaValor = mysql_fetch_array($consulta)) { $numero = mysql_num_rows($consulta); } if($numero < 1) // comparo se usuario e senha são verdadeiros { echo "<meta http-equiv=\"refresh\" content=\"0;URL=http://www.cracco.com.br/restrita/negado.php\">"; } } ob_end_flush();/* Bom pessoal o que eu fiz aqui foi usar a autenticação mais o banco... então quando o usuário coloca o user e senha ele procura no banco e se existir então ele está autenticado... claro que para isso funcionar terei que ter uma tabela onde irei cadastrar previamente os usuarios autorizados... depois disso só dou um include para que desse arquivo para cada página que quero tornar restrito bom gente espero que isso possa ajudar a vcs como me ajudou quando precisei dele... */?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Instalei o Apache no meu computador e nunca testado esse tipo de autenticação. Depois de ver esse mesmo artigo citado do site numaboa, tentei fazer, mas O APACHE IGNORAVA O ARQUIVO .htaccess.

 

Depois de mexer bastante, vi que ele não vem configurado mesmo para ler esses arquivos.

 

 

De uma olhada no seu httpd.conf. se quiser, faça uma busca usando AllowOverride, acho que você vai direto para o parametro que deve ser modificado para ele aceitar os .htaccess

AllowOverride none

 

Verifique também AccessFileName, deve estar escrito .htaccess (você pode modificar).

 

 

Para criar um arquivo sem nome no Windows, abra o bloco de notas e salve como .htaccess ....

Aqui ele, Apache, ainda continua passando batido!!!!! hehehehe

 

Não le o arquivo ñ!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites
<?php

/******************************** BY MRS *********************************/

ob_start();

require "../banco.php";

if(!isset($PHP_AUTH_USER)) // verifico se a variavel existe..

{

header("WWW-Authenticate: basic realm=\"Um nome qualquer para a caixa\"");

header("HTTP/1.0 401 Unauthorized");

echo ""; // se ela não existit mando para cancelado

exit;

}

else // mas se ela existir verifico se ela é valida

{

$sql = "SELECT * FROM restrito WHERE nome='$PHP_AUTH_USER' AND guardasenhas='$PHP_AUTH_PW'";

$consulta = mysql_query($sql);

while($pegaValor = mysql_fetch_array($consulta))

{

$numero = mysql_num_rows($consulta);

}

if($numero

{

echo "";

}

 

}

ob_end_flush();

 

/* Bom pessoal o que eu fiz aqui foi usar a autenticação mais o banco...

então quando o usuário coloca o user e senha ele procura no banco e se existir então ele está autenticado...

claro que para isso funcionar terei que ter uma tabela onde irei cadastrar previamente os usuarios autorizados...

depois disso só dou um include para que desse arquivo para cada página que quero tornar restrito

bom gente espero que isso possa ajudar a vcs como me ajudou quando precisei dele...

*/

?>

Opa beleza Cerrito

 

só queria dar um toque nesse seu script ele ta muito simples e sem segurança

 

ta facil usar um sql injection ai dai qualquer pessoa loga no seu sistema

 

e outra coisa importante,mas que é sempre esquecida só abra conexao com o banco na hora que for realmente usar e feche a em seguida, por mais que você nao ve diferença se você fosse fazer um sistema gigante tipo um orkut etc... mais de 3 milhoes de usuarios acessando o banco se viria seu servidor caindo direto pq se sabe tem um limite de conexoes abertas por sessao e sem contar que ficaria muito lento

 

e outra coisa nesse tipo de consulta que você só ta verificando se tem o usuario e senha use o count é bem melhor e muito mais rapido a execulção dele

 

e use $_SERVER["PHP_AUTH_USER"] e $_SERVER["PHP_AUTH_USER"] essas que você usa sao variaveis antigas e ficou obsoletas e pode um dia deixar de funcionar se caso o pessoal do php quiser

 

desculpa alguma coisa eu só quiz ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

oq exatamente o $_SERVER faz???eu sei soh do $_POST e do $_GET... :P !!! burrao!!! hehehetipo, eu tenho um sistema de login ki nao eh feito com um while, ele tem um contador feito em for... eh mais complicado de alguem jogar um sql injection neh?valeus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.