Pular para o conteúdo

PHP acabou de corrigir um bug com mais de duas décadas

Ver no idioma original →

Autoria: Better Stack · Assistir no YouTube

Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.

Idioma original: inglês

Vídeo original: PHP Just Patched A Bug That’s Over Two Decades Old · Canal: Better Stack · 01:31 · Assistir no YouTube

Tópicos: Cibersegurança e segurança de software, Engenharia de software com IA, Ferramentas de desenvolvimento com IA

Por mais de duas décadas, o PHP podia encaminhar cabeçalhos de autorização — e seus tokens — a outro servidor ao seguir um redirecionamento, inclusive de HTTPS para HTTP. A correção lançada em 2026 remove os cabeçalhos de autorização e cookies quando o esquema, o host ou a porta mudam. A correção não remove cabeçalhos personalizados, como X-API-Key, então é preciso desativar os redirecionamentos automáticos e verificá-los manualmente para proteger esses dados. O vídeo também observa que o cliente HTTP do Laravel usa o Guzzle, que segue redirecionamentos por conta própria, e recomenda atualizar o PHP.

  • O bug permitia que tokens em cabeçalhos de autorização fossem enviados a outro servidor durante um redirecionamento.
  • O risco também ocorria quando o redirecionamento mudava de HTTPS para HTTP, enviando o token sem criptografia.
  • A correção do PHP remove cabeçalhos de autorização e cookies se o esquema, o host ou a porta mudarem.
  • Cabeçalhos personalizados, como X-API-Key, não são removidos pela correção.
  • Para proteger valores em cabeçalhos personalizados, desative os redirecionamentos automáticos e verifique cada destino antes de segui-lo.
  • O vídeo recomenda atualizar para a versão de patch mais recente do PHP, entre as versões 8.2 e 8.5 mencionadas.
  • O cliente HTTP do Laravel é baseado no Guzzle, que gerencia os redirecionamentos por conta própria.
Início Capítulo Resumo
00:00 O vazamento de cabeçalhos em redirecionamentos O PHP podia encaminhar cabeçalhos de autorização a outro servidor, até mesmo após um redirecionamento de HTTPS para HTTP.
00:30 O que a correção muda — e o que não muda A correção remove cabeçalhos de autorização e cookies em certas mudanças de destino, mas não abrange cabeçalhos personalizados como X-API-Key.
01:01 Atualização do PHP e comentários sobre a linguagem O vídeo recomenda atualizar o PHP e termina com comentários sobre a longevidade da linguagem e a experiência do apresentador com Laravel.

O PHP vem vazando seus cabeçalhos de autorização às escondidas há mais de duas décadas. — 00:00

Se o esquema, o host ou a porta mudarem, o PHP agora remove os cabeçalhos de autorização e cookies antes de seguir. — 00:30

Uma chave de API em um cabeçalho personalizado, como X-API-Key, ainda vai para o novo servidor. — 00:30

É só atualizar para a versão de patch mais recente do PHP. — 01:01

  • PHP (ferramenta): Linguagem cuja implementação de redirecionamentos podia encaminhar cabeçalhos sensíveis a outro servidor.
  • file_get_contents (conceito): Função do PHP usada no exemplo para obter o conteúdo de uma URL com um cabeçalho de autorização.
  • Laravel (ferramenta): Framework mencionado no vídeo, cujo cliente HTTP é baseado no Guzzle.
  • Guzzle (ferramenta): Biblioteca que o cliente HTTP do Laravel usa e que segue os redirecionamentos por conta própria.
  • X-API-Key (conceito): Exemplo de cabeçalho personalizado que não é removido pela correção descrita.
  • Better Stack (empresa): Canal que publicou o vídeo sobre a correção no PHP.
  • XAMPP (ferramenta): Servidor mencionado pelo apresentador ao relembrar seus primeiros projetos com PHP.
  • LAMP (conceito): Pilha de software que o apresentador recorda ter citado ao falar de seus antigos sites.

00:00 O PHP vem vazando seus cabeçalhos de autorização em segredo há mais de duas décadas. Deixe-me explicar. Digamos que você queira obter o conteúdo de uma URL; então, chama file_get_contents e passa seu cabeçalho de autorização. Se essa API redirecionar para outro servidor, o PHP segue o redirecionamento e também envia seu token para lá. Ele faz isso até mesmo se o redirecionamento for de HTTPS para HTTP puro, então seu token é enviado sem nenhuma criptografia. Esse problema existe no PHP desde 2003, mas o novo patch lançado em 20

00:30 26 finalmente verifica para onde cada redirecionamento vai. Se o esquema, o host ou a porta mudar, o PHP agora remove os cabeçalhos de autorização e de cookies antes de seguir o redirecionamento. E, se você estiver usando o cliente HTTP do Laravel, não precisa se preocupar, porque ele é baseado no Guzzle, e o próprio Guzzle segue os redirecionamentos. Mas a correção oficial no PHP base remove apenas esses cabeçalhos específicos: autorização e cookies. Então, uma chave de API em um cabeçalho personalizado, como X-API-Key, ainda é enviada para o novo servidor. Para evitar isso, desative os redirecionamentos automáticos do PHP e siga-os

01:01 por conta própria, depois de verificar para onde eles realmente apontam. Para obter a correção, basta atualizar para a versão de patch mais recente do PHP, da 8.2 até a 8.5. E olha, eu sei que é divertido odiar o PHP e, sim, ele teve muitos problemas no passado, mas é aquela linguagem que todo mundo diz que vai morrer há 20 anos, e ela continua firme. Em especial, sou um grande fã do Laravel; é definitivamente um framework sólido que ainda permite criar aplicativos de qualidade muito boa. Na verdade, lembro de usar PHP e o servidor XAMPP para rodar uns sites pequenos no meu computador bege, quando eu era criança, dizendo

01:31 a todo mundo que eu era desenvolvedor de uma stack LAMP. Mas enfim, se você quiser ficar por dentro de notícias para desenvolvedores como esta, inscreva-se no Better Stack.

Transcrição original

[00:00] PHP has been secretly leaking your authorization headers for over two decades. Let me explain. Say you want to get the contents of a URL, so you call file_get_contents and pass in your authorization header. If that API redirects to a different server, PHP follows it and sends your token there, too. It even does this if the redirect is from HTTPS to plain HTTP, so your token goes out completely unencrypted. This issue has existed in PHP since 2003, but the new patch released in 20

[00:30] 26 finally checks where every redirect goes. If the scheme, host, or port changes, PHP now drops your authorization and cookie headers before it follows. And if you’re using Laravel’s HTTP client, you’re fine because it’s built on top of Guzzle, and Guzzle follows redirects itself. But the official fix in the base PHP only strips those specific headers, authorization and cookies. So, an API key in a custom header like X-API-Key still goes to the new server. For that, switch off PHP’s automatic redirects and follow them

[01:01] yourself once you’ve checked where they actually point. To get the fix, you just need to update to the latest patch release for PHP, which is 8.2 through to 8.5. And look, I know it’s fun to hate on PHP, and yes, it’s had many problems in the past, but it’s that language everyone’s been saying is going to be dead for the last 20 years, and it just keeps on going. Particularly, I’ve been a massive fan of Laravel, definitely a solid framework that can still build pretty good quality apps. I actually remember using PHP and XAMPP server to run like little websites on my beige computer back when I was a kid, telling

[01:31] everyone I was a LAMP stack developer. But anyway, if you want to stay up to date with developer news like this, then subscribe to Better Stack.