Pular para o conteúdo

Segurança: Autenticando o PHP com HTTP (Authentication Required)

Um dos modos muito seguros para fazer autenticação de usuário em uma área restrita é usando a autenticação HTTP. Essa autenticação só é possível para os PHPs que estão compilados como módulos do Apache. Aqui vamos ver as vantagens e os perigos deste tipo de autenticação.
leo genilhu leogenilhu
Hits: 32.630 Categoria: PHP Subcategoria: Segurança
  • Indicar
  • Impressora
  • Denunciar

Segurança: Autenticando o PHP com HTTP (Authentication Required)

Um dos modos muito seguros para fazer autenticação de usuário em uma área restrita é usando a autenticação HTTP. Essa autenticação só é possível para os PHPs que estão compilados como módulos do Apache. Vamos ver as vantagens e os perigos desta autenticação.

Como funciona?
Quando o PHP está compilado como módulo do Apache, é possível usar a função nativa que envia uma janela de entrada "Authentication Required" ao servidor web, que por sua vez requisita 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 nome de usuário, 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 daí 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>";
  }
?>
   1. Segurança: Autenticando o PHP com HTTP (Authentication Required)
   2. Analisando o código
   3. Informações importantes

PHP: Programando com segurança

Fazendo sua conexão remota por SSH mais segura

Sistema de identificação em rede (NIS)

Criando backup do MySQL com o mysqldump

PHP: Programando com segurança

Vulnerabilidade em formulário PHP

Pentesting on PHP apps: XSS

Autenticação de sites com PHP e MySQL

Dados sensíveis em arquivos com extensão .inc

Contribuir com comentário

Entre na sua conta para comentar.