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:
- O navegador pede a página.
- Se a página é protegida, o servidor responde
401 Unauthorizede manda o cabeçalhoWWW-Authenticate: Basic realm="...". Isso faz o navegador abrir aquela janelinha de usuário e senha. - 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.