Segurança: Autenticando o PHP com HTTP (Authentication Required)
Como funciona ?
Quando o PHP esta compilado como modulo do apache é possível usar a função nativa que envia uma janela de entrada "Authentication Required" ao servidor web, que por sua vez requisitará ao browser do cliente uma tela de diálogo de entrada para usuário e senha. Assim que o usuário preencher seu login e senha, a URL contendo o script PHP será chamada de novo com as variáveis PHP_AUTH_USER, PHP_AUTH_PW, e AUTH_TYPE.
Estas variáveis contém o login, senha e tipo de autenticação, sendo esta uma informação muito importante para nosso script de validação.
Estas informações são enviadas respectivamente nessa ordem para o servidor. A partir dai essas variáveis pré-definidas são achadas nos arrays e $HTTP_SERVER_VARS.
Obs: $_SERVER é um array contendo informações como headers com caminhos e localizações do script etc. A variável $_SERVER foi introduzida a partir da versão 4.1.0 . Os itens deste array são criados pelo servidor web. Não há garantias que todos os servidores web geram geram estas variáveis alguns servidores são configurados para omitem esta variável.
Veja um exemplo de código:
Quando o PHP esta compilado como modulo do apache é possível usar a função nativa que envia uma janela de entrada "Authentication Required" ao servidor web, que por sua vez requisitará ao browser do cliente uma tela de diálogo de entrada para usuário e senha. Assim que o usuário preencher seu login e senha, a URL contendo o script PHP será chamada de novo com as variáveis PHP_AUTH_USER, PHP_AUTH_PW, e AUTH_TYPE.
Estas variáveis contém o login, senha e tipo de autenticação, sendo esta uma informação muito importante para nosso script de validação.
Estas informações são enviadas respectivamente nessa ordem para o servidor. A partir dai essas variáveis pré-definidas são achadas nos arrays e $HTTP_SERVER_VARS.
Obs: $_SERVER é um array contendo informações como headers com caminhos e localizações do script etc. A variável $_SERVER foi introduzida a partir da versão 4.1.0 . Os itens deste array são criados pelo servidor web. Não há garantias que todos os servidores web geram geram estas variáveis alguns servidores são configurados para omitem esta variável.
Veja um exemplo de código:
<?php if (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="Minha intranet"'); header('HTTP/1.0 401 Unauthorized'); echo 'Operação cancelada! Você não logou!!'; exit; } else { echo "<p>Olá, {$_SERVER['PHP_AUTH_USER']}.</p>"; echo "<p>Sua senha é : {$_SERVER['PHP_AUTH_PW']}.</p>"; } ?>
Ola Clrgomes,
para fazer um logou vc nao precisar necessariamente fechar o browser, na verdada por esse caminha vc nunca garantira segurança na aplicação. A forma correta eh apagar a sessão que esta sendo usada para autenticação.
um abraço
para fazer um logou vc nao precisar necessariamente fechar o browser, na verdada por esse caminha vc nunca garantira segurança na aplicação. A forma correta eh apagar a sessão que esta sendo usada para autenticação.
um abraço
03/02/2006 6:24am
(~19 anos atrás)
Legal, mas gostaria de criar um logout sem fechar o navegador, como posso fazer isso?
Cassio
Cassio
01/02/2006 8:38am
(~19 anos atrás)
Como posso fazer um codigo para LOGOUT neste codigo exibido.
Obrigado
CLRGomes
Obrigado
CLRGomes
19/01/2006 4:02am
(~19 anos atrás)
mto bom simplificou em vez de termos que ficar botando essas configs no apache é só por no php e ja era =D, valeu cara mto bom
17/01/2006 5:03pm
(~19 anos atrás)
eu tb tava kerendo saber como faz isso! eu keria autenticar atraves da pag principal sem temq aparecer akela janelinha!
14/01/2006 2:42am
(~19 anos atrás)
..blz, mas de posse dos dados como passo eles para o servidor http (apache) para que ele não requisite o login exibindo a janelinha?
09/01/2006 11:10am
(~19 anos atrás)
Ola asclows,
Voce pode usar o PHP para ler os arquivo .password e autenticar os seus usuarios.
um Abraço
Voce pode usar o PHP para ler os arquivo .password e autenticar os seus usuarios.
um Abraço
06/01/2006 5:56am
(~19 anos atrás)
Por exemplo, tenho uma pasta está protegida por senha (permissões no arquivo .htaccess) e gostaria de aproveitar os dados de login do usuário que já estão gravadas em uma sessão php para autenticar o acesso à pasta ao invés de lançar a tela de login do browser que é exibida quando a pasta é protegida.
Não sei se expliquei direito, mas é simples, ao invés de requisitar a autenticação pra acessar os arquivos do diretório, o acesso será liberado pq o php repassará os dados da sessão do usuário e a autenticação para a pasta protegida será transparente ao usuário.
Tem jeito?
Não sei se expliquei direito, mas é simples, ao invés de requisitar a autenticação pra acessar os arquivos do diretório, o acesso será liberado pq o php repassará os dados da sessão do usuário e a autenticação para a pasta protegida será transparente ao usuário.
Tem jeito?
05/01/2006 10:46am
(~19 anos atrás)
Abraço.