Pular para o conteúdo
Todos os conceitos

Login no HTTP

O HTTP Basic manda usuário e senha juntos, só codificados em Base64, que qualquer um lê.

Muitos sites e painéis antigos protegem uma página com autenticação HTTP Basic. O passo a passo é simples:

  1. O navegador pede a página.
  2. Se a página é protegida, o servidor responde 401 Unauthorized e manda o cabeçalho WWW-Authenticate: Basic realm="...". Isso faz o navegador abrir aquela janelinha de usuário e senha.
  3. O navegador repete o mesmo pedido, agora com o cabeçalho Authorization: Basic <texto>.

O ponto que importa para a investigação: esse <texto> não é cifra. É só usuario:senha escrito em Base64, uma forma de representar texto que embaralha a aparência mas não esconde nada. Quem pega o pedido na rede decodifica na hora.

Exemplo. O cabeçalho

Authorization: Basic YW5hOnBhbXBhMjAyNg==

tem o valor YW5hOnBhbXBhMjAyNg==. Passando por From Base64 no CyberChef (abre em nova aba), ou por echo YW5hOnBhbXBhMjAyNg== | base64 -d no terminal, sai ana:pampa2026: usuário ana, senha pampa2026. Em Python:

import base64
base64.b64decode("YW5hOnBhbXBhMjAyNg==").decode()  # 'ana:pampa2026'

Se houver mais de uma tentativa, veja qual o servidor aceitou: a resposta 200 OK é a que entrou, e a 401 foi recusada.

Isso importa porque o Base64 engana muita gente que pensa que já é "senha protegida". Sobre HTTP puro, a senha viaja aberta na prática. É por isso que o Basic só se usa sobre HTTPS, que cifra o pedido inteiro, cabeçalho incluído.

Aparece nestes desafios