ForHosting KIT · Ferramentas para dev

Verificar cabeçalhos CORS

Uma resposta que permite app.example.com com credenciais e inclui Origin no cabeçalho Vary passa com 0 problemas. Cole os cabeçalhos que você capturou e veja na hora se um curinga está misturado com credenciais ou se falta o sinal para o cache. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve

Este verificador de configuração de cabeçalhos CORS analisa os cabeçalhos de resposta que controlam o acesso entre origens no navegador. Cole um bloco de cabeçalhos para confirmar a presença de Access-Control-Allow-Origin, detectar a combinação insegura de origem curinga com credenciais e identificar a ausência de Vary: Origin quando uma origem específica é permitida.

Interprete o resultado como uma revisão direcionada

Comece copiando os cabeçalhos de resposta exatamente como foram recebidos pelo navegador ou cliente de linha de comando, com um par Nome: valor por linha. Os nomes são comparados sem diferenciação entre maiúsculas e minúsculas, e valores de Vary separados por vírgulas são tratados como itens individuais. O verificador exige Access-Control-Allow-Origin porque não existe uma política CORS de resposta para avaliar sem esse cabeçalho; portanto, sua ausência gera um erro de entrada, e não um relatório inconclusivo.

Um relatório bem-sucedido retorna a origem permitida normalizada, informa se as credenciais estão habilitadas, indica se a resposta varia por Origin e apresenta uma lista ordenada de achados. O campo valid significa que nenhum problema com gravidade de erro foi detectado. Esse escopo restrito é proposital: oferece fatos estáveis sobre dois erros comuns sem alegar que todo o modelo de autorização do aplicativo é seguro.

Guarde a resposta original e a origem da solicitação com o resultado quando a verificação fizer parte de uma auditoria.

Entenda origens curinga e solicitações com credenciais

Access-Control-Allow-Origin: * é conveniente para recursos realmente públicos e sem credenciais, pois permite que qualquer origem solicitante leia a resposta. Ele não deve ser combinado com Access-Control-Allow-Credentials: true. Os navegadores rejeitam essa combinação no acesso CORS com credenciais, e a configuração frequentemente revela que o limite de confiança pretendido pelo servidor não foi expresso corretamente.

A correção não é refletir automaticamente todo Origin recebido. Defina quais origens são confiáveis, compare o Origin da solicitação com uma lista explícita de permissões e emita apenas uma origem aprovada após uma correspondência. Se cookies ou outras credenciais ambientais não forem necessários, desative o suporte a credenciais e mantenha a política pública com curinga.

Lembre-se também de que CORS controla se scripts do navegador podem ler uma resposta; não é autenticação, autorização, proteção contra falsificação de solicitações nem firewall.

Use Vary: Origin para manter caches compartilhados corretos

Quando um servidor escolhe um valor específico de Access-Control-Allow-Origin conforme o Origin da solicitação, a representação da resposta depende efetivamente desse cabeçalho. Vary: Origin informa a navegadores, proxies reversos e redes de distribuição de conteúdo que respostas produzidas para origens diferentes não podem ser tratadas como equivalentes. Sem ele, um cache pode reutilizar em outra solicitação uma resposta que contém a origem permitida de um locatário, provocando falhas intermitentes e possivelmente enfraquecendo as premissas da política para conteúdo armazenado.

Ele aceita Origin em uma linha Vary separada por vírgulas e também em cabeçalhos Vary repetidos. O achado é um aviso porque uma resposta colada não revela se o valor da origem é constante em todas as solicitações ou se o cache está desabilitado em outro ponto. Confirme a lógica real de seleção do servidor e as diretivas de cache antes de alterar a produção.

Se a origem for refletida dinamicamente após validação por lista de permissões, adicionar Origin a Vary costuma ser o sinal de cache mais claro e seguro.

Investigar falhas CORS no navegador

Transforme cabeçalhos capturados em achados explícitos quando uma interface se comportar de modo diferente entre origens ou caminhos de cache.

Por que a ausência de Access-Control-Allow-Origin é um erro?

Esse cabeçalho é a base de uma política de resposta CORS. Sem ele, não há valor de origem permitida para este verificador direcionado avaliar.

Access-Control-Allow-Origin: * é sempre inseguro?

Não. Ele é adequado para alguns recursos públicos que não aceitam credenciais. O erro informado exige ao mesmo tempo a origem curinga e as credenciais definidas como true.

Por que a ausência de Vary: Origin é apenas um aviso?

A resposta isolada não mostra se a origem muda entre solicitações nem se um intermediário pode armazená-la. O aviso orienta a verificar esse contexto.

A verificação se conecta ao meu servidor?

Não. Ela só lê os cabeçalhos que você cola e não envia nada ao site de onde vieram. Se a checagem fizer parte de uma auditoria, guarde a resposta original e a origem da solicitação junto com o resultado.

Um resultado sem problemas significa que meu site é seguro?

Não. O CORS só decide se scripts no navegador podem ler uma resposta; não é login, nem permissões, nem proteção contra falsificação de solicitações, nem firewall. Revise à parte os cookies, os métodos permitidos e as verificações prévias.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

POSThttps://api.kit.forhosting.com/security/cors-header-check

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

curl -X POST https://api.kit.forhosting.com/security/cors-header-check \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"headers":"Access-Control-Allow-Origin: https://app.example.com\nAccess-Control-Allow-Credentials: true\nVary: Accept-Encoding, Origin"}'
{
  "headers": "Access-Control-Allow-Origin: https://app.example.com\nAccess-Control-Allow-Credentials: true\nVary: Accept-Encoding, Origin"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "security.cors_header_check",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

O resultado é determinístico e explica cada achado, sendo útil em revisões de implantação, investigação de incidentes, verificações automatizadas e reforço rotineiro de API, sem enviar uma solicitação ao servidor de destino.

Interprete o resultado como uma revisão direcionada

Ainda pode existir um aviso, então sistemas consumidores também devem examinar issue_count e issues.

Entenda origens curinga e solicitações com credenciais

O verificador registra essa combinação como wildcard_origin_with_credentials com gravidade de erro. Revise separadamente atributos de cookies, controles de autorização, métodos, cabeçalhos expostos e comportamento de preflight antes de considerar o endpoint seguro.

Use Vary: Origin para manter caches compartilhados corretos

Por isso, o verificador emite missing_vary_origin quando a origem permitida é específica e Vary não contém Origin nem o token curinga.

Revisar uma implantação de API

Cole cabeçalhos de uma resposta de homologação e detecte configurações inseguras de credenciais ou variação de cache antes da publicação.

Automatizar verificações de configuração

Execute blocos determinísticos de cabeçalhos pela API em CI e reprove políticas diante de achados com gravidade de erro.

Quanto custa a verificação?

A versão do navegador é executada localmente, e cada solicitação à API custa US$ 0,002.

Esta verificação prova que um endpoint é seguro?

Não. Ela verifica dois erros comuns de cabeçalhos CORS. Autenticação, autorização, cookies, preflight, métodos permitidos e proteção contra falsificação exigem análises separadas.

Os nomes dos cabeçalhos diferenciam maiúsculas?

Não. Os nomes dos cabeçalhos HTTP e os tokens relevantes das diretivas são comparados sem diferenciar maiúsculas de minúsculas.

Ver a documentação completa do KIT →