Pular para o conteúdo
Glossary 7 min de leitura 975 visualizações

Injeção de cabeçalhos (Header Injection)

A injeção de cabeçalhos é uma vulnerabilidade crítica que permite a atacantes manipular cabeçalhos HTTP por meio de servidores proxy. Entenda o impacto e a prevenção.

HTTP Security
Injeção de cabeçalhos (Header Injection)

A injeção de cabeçalhos (header injection), quando realizada por meio de um proxy, refere-se ao processo controlado de adicionar, modificar ou remover cabeçalhos HTTP de requisições ou respostas conforme elas atravessam o servidor proxy. Essa manipulação ocorre entre o cliente e o servidor de origem, ou entre o servidor de origem e o cliente, permitindo a alteração dinâmica dos metadados de comunicação sem modificar nem a aplicação cliente nem a aplicação servidora.

Entendendo a injeção de cabeçalhos via proxy

Um servidor proxy atua como intermediário para as requisições de clientes que buscam recursos em outros servidores. Durante essa mediação, o proxy pode inspecionar e alterar diversos aspectos da comunicação HTTP, incluindo seus cabeçalhos. A injeção de cabeçalhos é uma configuração deliberada no proxy para atingir objetivos operacionais, de segurança ou de desenvolvimento específicos.

Os proxies podem manipular cabeçalhos em:
* Requisições de saída: Modificando os cabeçalhos enviados do cliente para o servidor de origem.
* Respostas de entrada: Modificando os cabeçalhos enviados do servidor de origem para o cliente.

Essa capacidade é distinta das vulnerabilidades maliciosas de injeção de cabeçalhos, nas quais um atacante explora uma falha da aplicação para injetar cabeçalhos indesejados. Aqui, a injeção de cabeçalhos é uma ação legítima e configurada pelo operador do proxy.

Mecanismo de manipulação de cabeçalhos

Quando uma requisição ou resposta HTTP passa por um proxy, a configuração do servidor proxy determina como os cabeçalhos são tratados. O processo normalmente envolve:
1. Interceptação: O proxy recebe a mensagem HTTP.
2. Análise (parsing): O proxy analisa a mensagem e extrai os cabeçalhos.
3. Avaliação de regras: O proxy aplica regras configuradas com base em critérios como URL, método, IP do cliente ou valores de cabeçalhos existentes.
4. Manipulação: Com base nas regras, o proxy adiciona novos cabeçalhos, modifica valores de cabeçalhos existentes ou remove cabeçalhos por completo.
5. Encaminhamento: A mensagem modificada é então encaminhada ao seu destino (servidor de origem ou cliente).

Casos de uso comuns e benefícios

A injeção de cabeçalhos por meio de um proxy atende a diversos propósitos práticos.

1. Segurança e anonimato

Os proxies são fundamentais para reforçar a segurança e o anonimato ao manipular cabeçalhos identificadores.
* Anonimização de IP: Remover ou alterar os cabeçalhos X-Forwarded-For, Via ou Remote-Addr para ocultar o IP real do cliente do servidor de origem.
* Mascaramento de User-Agent: Alterar o cabeçalho User-Agent para parecer outro navegador ou dispositivo, impedindo o rastreamento do lado do servidor ou a personalização de conteúdo.
* Controle de Referer: Modificar ou remover o cabeçalho Referer para impedir que os servidores de origem saibam qual foi a página anterior visitada pelo cliente.
* Autenticação: Injetar cabeçalhos Authorization ou tokens personalizados para serviços upstream que exigem autenticação com credenciais do lado do proxy.

2. Otimização de desempenho

A manipulação de cabeçalhos pode impactar significativamente o cache e a entrega de conteúdo.
* Controle de cache: Injetar cabeçalhos Cache-Control ou Pragma para influenciar como servidores de origem ou caches intermediários tratam o cache de conteúdo, por exemplo, forçando revalidação (Cache-Control: no-cache) ou estendendo o tempo de vida do cache.
* Compressão de conteúdo: Adicionar Accept-Encoding: gzip, deflate caso o cliente não o tenha enviado, garantindo que o servidor de origem responda com conteúdo comprimido.

3. Desenvolvimento e testes

Desenvolvedores usam proxies para simular diversas condições de cliente ou testar comportamentos do servidor.
* Emulação de navegador: Alterar o User-Agent para testar a renderização do site em diferentes navegadores sem precisar de vários navegadores reais.
* Testes de idioma: Injetar cabeçalhos Accept-Language para testar os recursos de internacionalização e localização de uma aplicação web.
* Testes de API: Adicionar cabeçalhos X-API-Key específicos ou personalizados exigidos por uma API que talvez não sejam facilmente configuráveis na aplicação cliente.
* Depuração: Injetar cabeçalhos X-Debug para acionar modos de depuração no servidor de origem e obter logs detalhados.

4. Adaptação de conteúdo e roteamento

Os proxies podem influenciar como o conteúdo é servido ou como as requisições são roteadas.
* Simulação de geo-segmentação: Injetar X-Geo-Location ou cabeçalhos similares para testar a entrega de conteúdo geoespecífico sem mudar fisicamente de localização.
* Balanceamento de carga: Cabeçalhos personalizados podem ser usados por balanceadores de carga upstream para rotear requisições a instâncias específicas de servidor.
* Testes A/B: Injetar cabeçalhos personalizados para direcionar usuários a versões diferentes de um site em testes A/B.

Tipos de manipulação de cabeçalhos

Os proxies geralmente suportam três operações fundamentais sobre cabeçalhos:

1. Adicionar novos cabeçalhos

Consiste em inserir um cabeçalho que não estava presente na requisição ou resposta original.
* Exemplo: Adicionar X-MyProxy-ID: P123 a toda requisição de saída para rastreamento.
* Exemplo: Adicionar Strict-Transport-Security: max-age=31536000; includeSubDomains a todas as respostas para impor HSTS.

2. Modificar cabeçalhos existentes

Isso altera o valor de um cabeçalho já presente.
* Exemplo: Alterar User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) para User-Agent: MyCustomBot/1.0.
* Exemplo: Acrescentar informação a um cabeçalho existente, por exemplo, X-Forwarded-For: client_ip, proxy_ip.

3. Remover cabeçalhos

Consiste em retirar um cabeçalho da mensagem antes de encaminhá-la.
* Exemplo: Remover cabeçalhos Cookie das requisições para aumentar a privacidade.
* Exemplo: Remover cabeçalhos Server ou X-Powered-By das respostas para reduzir o fingerprinting do servidor.

Exemplos de configuração de proxy

O método de injeção de cabeçalhos varia conforme o software ou serviço de proxy.

Nginx (como proxy reverso)

O Nginx usa diretivas como proxy_set_header para requisições e add_header para respostas.

http {
    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend_server;

            # Adicionar/modificar cabeçalhos de requisição
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header User-Agent "MyCustomUserAgent/1.0";
            proxy_set_header X-My-Custom-Header "Value";

            # Remover um cabeçalho de requisição (definindo-o como vazio)
            # Observação: o Nginx não 'remove' cabeçalhos de requisição diretamente,
            # mas você pode evitar o encaminhamento ou sobrescrevê-los com valor vazio.
            # Para remover de fato, pode ser necessário Lua ou módulos mais avançados.

            # Adicionar/modificar cabeçalhos de resposta
            add_header X-Frame-Options "DENY";
            add_header X-Content-Type-Options "nosniff";
            add_header Cache-Control "no-cache, no-store, must-revalidate";

            # Remover um cabeçalho de resposta (requer módulos mais avançados ou header_filter_by_lua)
            # Exemplo usando `more_clear_headers` do módulo ngx_headers_more
            # more_clear_headers 'Server';
        }
    }
}

Squid Proxy (como proxy direto)

O Squid usa request_header_add, request_header_replace, request_header_access, reply_header_add, entre outros.

# Adicionar um cabeçalho às requisições do cliente
request_header_add X-Proxy-Client-IP %<A

# Substituir um cabeçalho existente nas requisições do cliente
request_header_replace User-Agent MySquidAgent/1.0

# Remover um cabeçalho das requisições do cliente
request_header_access Referer deny all

# Adicionar um cabeçalho às respostas do servidor
reply_header_add X-Squid-Cache-Status %s

# Remover um cabeçalho das respostas do servidor
reply_header_access Server deny all

Serviço de proxy genérico (API/UI conceitual)

Um serviço de proxy comercial pode oferecer configuração via painel ou API.

{
  "proxy_rules": [
    {
      "match": {
        "url_pattern": ".*",
        "method": "GET"
      },
      "actions": {
        "request_headers": {
          "add": {
            "X-Proxy-Request-ID": "{{request_id}}"
          },
          "modify": {
            "User-Agent": "BotCrawler/1.0"
          },
          "remove": ["Accept-Encoding"]
        },
        "response_headers": {
          "add": {
            "X-Cache-Status": "HIT"
          },
          "modify": {
            "Content-Security-Policy": "default-src 'self'"
          },
          "remove": ["X-Powered-By"]
        }
      }
    }
  ]
}

Comparação: manipulação de cabeçalhos no cliente vs. no proxy

Característica Manipulação de cabeçalhos no cliente Manipulação de cabeçalhos no proxy
Ponto de controle Extensões de navegador, scripts do lado do cliente, ferramentas de desenvolvedor Configuração do servidor proxy
Escopo Afeta apenas aquela instância específica do cliente Afeta todos os clientes roteados pelo proxy
Visibilidade Apenas no cliente; o servidor vê o cabeçalho modificado O servidor vê o cabeçalho modificado; o cliente não percebe
Complexidade Varia conforme a ferramenta do cliente; geralmente manual Configuração centralizada; automatizável por script
Casos de uso Depuração local, preferências pessoais de navegação Anonimato, segurança, desempenho, testes A/B, aplicação de políticas corporativas
Escalabilidade Baixa; esforço individual por cliente Alta; aplica-se a milhões de requisições
Gerenciamento Descentralizado Centralizado

Riscos e considerações

Embora poderosa, a injeção de cabeçalhos por meio de um proxy traz riscos potenciais:

  • Implicações de segurança: Uma injeção de cabeçalhos mal configurada pode expor involuntariamente informações sensíveis (por exemplo, endereços IP internos via X-Forwarded-For quando isso não era a intenção) ou levar a bypasses se não for gerenciada com cuidado.
  • Compatibilidade com aplicações: Modificar ou remover cabeçalhos essenciais (por exemplo, Host, Content-Length, Cookie) pode quebrar aplicações que dependem de seus valores originais ou de sua presença.
  • Complexidade de depuração: Quando surgem problemas, identificar se a manipulação de cabeçalhos pelo proxy é a causa pode ser difícil, já que os logs do cliente e do servidor podem mostrar conjuntos diferentes de cabeçalhos.
  • Sobrecarga de desempenho: Regras extensas de manipulação de cabeçalhos podem adicionar latência de processamento a cada requisição e resposta, impactando o desempenho geral do proxy.
  • Conformidade: Certas regulamentações (por exemplo, GDPR, CCPA) podem ter implicações sobre como os cabeçalhos identificadores são tratados, exigindo configuração cuidadosa para garantir conformidade.
  • Invalidação de cache: Modificar incorretamente os cabeçalhos Vary ou Cache-Control pode fazer com que conteúdo desatualizado seja servido ou reduzir a taxa de acertos de cache.
Atualizado: 03.03.2026
Voltar à categoria

Leia também

Glossary 3 min

O que é um proxy móvel? Proxies 4G/5G explicados

Um proxy móvel roteia o tráfego através de um dispositivo 4G/5G real, te dando um IP de operadora compartilhado por milhares de usuários reais — o tipo mais difícil de bloquear. Veja como funcionam e quando usá-los.

Glossary 3 min

O que é um proxy ISP? Proxies residenciais estáticos explicados

Um proxy ISP é um IP estático hospedado em datacenter mas registrado em um ISP residencial — confiança residencial com velocidade de datacenter e IP fixo. Veja como funcionam e quando usá-los.

Glossary 3 min

Proxy HTTP vs HTTPS: qual é a diferença?

Um proxy HTTP pode ler seu tráfego web; um proxy HTTPS o tunela criptografado via CONNECT. Veja a diferença real, o que o proxy consegue ver e qual usar.

Glossary 4 min

O que é um proxy? Guia completo para iniciantes

Um servidor proxy é um intermediário que esconde seu IP real roteando o tráfego por outro IP. Veja como os proxies funcionam, os principais tipos e como escolher o certo.

Glossary 4 min

SOCKS5 vs proxy HTTP: diferenças, velocidade e quando usar cada um

Proxies SOCKS5 e HTTP resolvem problemas diferentes. Um proxy HTTP entende tráfego web e consegue cacheá-lo ou filtrá-lo; o SOCKS5 encaminha às cegas qualquer conexão TCP/UDP — torrents, jogos, e-mail, não só navegação. Nenhum dos dois criptografa o tráfego sozinho. Veja exatamente quando cada um ganha.

Glossary 1 min

CDN e proxies: como funcionam

CDN e proxies — como funcionam juntos — um termo da área de proxies e tecnologias de rede.

Experimente nossos proxies

20,000+ proxies em 100+ países do mundo

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.