1001Ferramentas
🔑 Dev

Parser de Authorization

Identifica o esquema (Basic, Bearer, Digest) de um header Authorization e extrai o payload, decodificando Basic em base64.

Ler o cabeçalho Authorization: Basic, Bearer e Digest

O Authorization tem duas partes: o esquema e as credenciais, e o formato das credenciais depende inteiramente do esquema. A página reconhece os três mais comuns e decodifica o que dá para decodificar — em Basic, o par usuário e senha; em Bearer, o token; em Digest, cada parâmetro nomeado.

A confusão mais frequente é achar que Basic protege algo. Ele apenas concatena usuário e senha com dois-pontos e passa por base64, que é codificação e não cifragem — qualquer um que veja o cabeçalho recupera a senha instantaneamente. Basic só é aceitável sobre TLS, e mesmo aí a senha trafega em cada requisição, o que multiplica a exposição.

Detalhe que morde na implementação: como o separador é o primeiro dois-pontos, senha pode conter dois-pontos mas usuário não. Um parser que divide pelo último dois-pontos, ou que usa split simples, quebra exatamente nas senhas mais fortes. A página divide na primeira ocorrência, que é o que a norma manda.

Perguntas frequentes

Bearer com JWT é seguro?
O esquema é só transporte — a segurança está no token. Quem recebe precisa verificar assinatura, emissor, público e validade; ler as claims sem verificar a assinatura é aceitar qualquer coisa que o cliente inventar. E como Bearer significa portador, quem tiver o token é o dono: interceptá-lo é suficiente para usá-lo.
Digest ainda vale a pena?
Raramente. Ele evita mandar a senha em claro usando desafio e resposta, o que fazia sentido antes do TLS onipresente, mas exige que o servidor guarde a senha de forma que permita recalcular o hash — o oposto do que se recomenda hoje. Com TLS, Bearer com token de vida curta resolve melhor.
Por que aparece cabeçalho com dois esquemas?
Porque o servidor pode oferecer vários no WWW-Authenticate para o cliente escolher, e nesse caso a resposta lista as opções. Já o Authorization enviado pelo cliente carrega um esquema só — se você vê dois ali, provavelmente algo concatenou dois cabeçalhos, e o servidor vai recusar.

Ferramentas Relacionadas