Verificador de CORS
Verifique a configuração de Compartilhamento de Recursos de Origem Cruzada (CORS) para qualquer URL. Inspecione os cabeçalhos de resposta Access-Control-*, execute uma requisição de preflight (OPTIONS) opcional com uma Origem/método/cabeçalhos personalizados e detecte configurações incorretas comuns, como curinga + credenciais, ausência de Vary: Origin ou allow-headers excessivamente amplos.
Funcionalidades
- Inspeção de cabeçalhos CORS para qualquer URL pública (Access-Control-* e cabeçalhos relacionados).
- Simulação opcional de preflight (OPTIONS) com Origem, método de requisição e cabeçalhos de requisição personalizados.
- Segue redirecionamentos (até 10) para que você valide o endpoint final que os navegadores realmente acessam.
- Visualização de cabeçalhos brutos para total transparência e depuração.
- Achados + cartão de pontuação com filtragem "apenas problemas" para triagem rápida.
- Análise Vary para detectar ausência de Vary: Origin e outras armadilhas de CORS relacionadas ao cache.
- Exporta resultados como relatórios JSON e PDF para auditorias, tickets e documentação.
- Recomendações integradas para problemas comuns: curinga+credenciais, reflexão de Origem, Origem nula, ausência de allow-methods/allow-headers, ausência de max-age e allow-headers excessivamente amplos.
🧭 Como usar for cors-checker
Insira a URL de destino
Cole o endpoint que deseja testar (ex: https://api.example.com/resource).
Defina a Origem da qual está testando
Insira a Origem do seu aplicativo frontend (esquema + host), ex: https://app.example.com. Este é o valor que os navegadores enviam no cabeçalho Origin.
Escolha um modo de verificação
Use Automático (recomendado) para analisar tanto os cabeçalhos de resposta quanto o comportamento de preflight. Use Requisição simples se quiser especificamente um cenário sem preflight, ou Apenas preflight para executar verificações OPTIONS.
Configure os detalhes do preflight (se aplicável)
Ative "Executar Preflight (OPTIONS)" e defina o Método de Requisição mais os Cabeçalhos de Requisição (separados por vírgula) para simular o comportamento real de preflight do navegador (ex: autorização, content-type). Ative "Considerar credenciais" se seu caso de uso incluir cookies ou cabeçalhos de autenticação.
Revise os achados e exporte
Verifique os achados/cartão de pontuação e os detalhes da análise CORS. Ative "Mostrar Cabeçalhos Brutos" ao depurar. Exporte JSON/PDF para compartilhamento ou armazenamento em auditorias.
Especificações técnicas
Modelo de requisição
A ferramenta inspeciona os cabeçalhos CORS para uma URL de destino e pode, opcionalmente, realizar uma requisição de preflight (OPTIONS) usando a Origem, método e cabeçalhos solicitados fornecidos. O seguimento de redirecionamento é suportado.
| Configuração | Comportamento | Padrão |
|---|---|---|
| Modo de Verificação | Automático, Solicitação Simples ou Apenas Preflight | Automático |
| Executar Preflight (OPTIONS) | Se habilitado, realiza uma simulação de preflight OPTIONS | Habilitado |
| Origem | Valor do cabeçalho Origin usado para análise/preflight | https://example.com |
| Método da Solicitação | Valor Access-Control-Request-Method para preflight | GET |
| Cabeçalhos da Solicitação | Access-Control-Request-Headers (separados por vírgula) para preflight | Vazio |
| Seguir Redirecionamentos | Segue a cadeia de redirecionamento até a URL final | Habilitado |
| Redirecionamentos Máximos | Limite de redirecionamentos para evitar loops | 10 (intervalo 0–20) |
| Tempo Limite | Limite de tempo limite da solicitação | 15000 ms |
| User-Agent | Identifica o agente do usuário da solicitação | Encode64Bot/1.0 (+https://encode64.com) |
| Redes privadas | Bloqueia o acesso a intervalos de rede privada por segurança | Desabilitado (redes privadas não permitidas) |
Cabeçalhos analisados (conjunto principal CORS)
O analisador foca nos cabeçalhos de resposta e solicitação CORS padrão usados pelos navegadores e verificações de preflight.
| Cabeçalho | Propósito |
|---|---|
| Access-Control-Allow-Origin | Qual(is) Origem(ns) são permitidos |
| Access-Control-Allow-Credentials | Se cookies/credenciais são permitidos (requer origem não curinga) |
| Access-Control-Allow-Methods | Métodos permitidos para requisições cross-origin (importante para preflight) |
| Access-Control-Allow-Headers | Cabeçalhos permitidos (importante para Authorization e cabeçalhos personalizados) |
| Access-Control-Expose-Headers | Quais cabeçalhos são legíveis pelo JavaScript do navegador |
| Access-Control-Max-Age | Por quanto tempo o preflight pode ser armazenado em cache pelo navegador |
| Vary | Variação da chave de cache (ex.: Vary: Origin) para evitar envenenamento/mistura de cache |
| Origin / Access-Control-Request-* | Usado para simular o comportamento de preflight |
Heurísticas (armadilhas comuns de CORS sinalizadas)
As descobertas são baseadas em verificações práticas e com foco em segurança para detectar configurações de CORS quebradas ou arriscadas.
| Verificação | Por que é importante |
|---|---|
| Curinga + credenciais | Access-Control-Allow-Origin: * não pode ser usado com credenciais; navegadores bloquearão ou o comportamento é inseguro |
| Falta de Vary: Origin | Se as respostas variam por Origin mas não são armazenadas em cache corretamente, caches compartilhados podem misturar respostas entre sites |
| Refletindo Origin | Repetir cegamente o Origin pode permitir involuntariamente origens não confiáveis |
| Avisos de Origin nulo | Origin: null pode aparecer em iframes isolados ou contextos de arquivo; permiti-lo é frequentemente arriscado |
| Falta de Allow-Methods / Allow-Headers | O preflight pode falhar se o servidor não permitir explicitamente o método/cabeçalhos |
| Allow-Headers excessivamente amplo | Permitir muitos cabeçalhos pode expandir a superfície de ataque |
| Falta de Max-Age | O preflight pode ser executado com muita frequência, adicionando latência |
Linha de comando
Use estes comandos para reproduzir o comportamento de CORS e preflight do seu terminal. Eles são úteis para depuração e verificação do que a ferramenta relata.
macOS / Linux
Verifique os cabeçalhos CORS para uma requisição normal (simule uma Origin do navegador)
curl -i -H "Origin: https://example.com" https://api.example.com/resourceProcure por Access-Control-Allow-Origin, Access-Control-Allow-Credentials e Vary.
Execute uma requisição de preflight OPTIONS (método + cabeçalhos)
curl -i -X OPTIONS -H "Origin: https://app.example.com" -H "Access-Control-Request-Method: POST" -H "Access-Control-Request-Headers: authorization, content-type" https://api.example.com/privateO preflight deve retornar os Access-Control-Allow-Methods e Access-Control-Allow-Headers corretos para o navegador prosseguir.
Seguir redirecionamentos enquanto verifica os cabeçalhos
curl -iL -H "Origin: https://example.com" https://api.example.comÚtil quando os endpoints redirecionam para um host diferente que possui regras de CORS distintas.
Windows (PowerShell)
Inspecionar cabeçalhos de resposta com um cabeçalho Origin
$r = Invoke-WebRequest -Uri https://api.example.com/resource -Headers @{ Origin = "https://example.com" }; $r.HeadersExibe os cabeçalhos Access-Control-* se estiverem presentes.
Casos de uso
Depurar um erro de navegador "CORS bloqueado" no frontend
Quando fetch/XHR falha com um erro de CORS, verifique se o servidor retorna os cabeçalhos Access-Control-* necessários para sua Origem e tipo de solicitação.
- Confirmar que Access-Control-Allow-Origin corresponde à origem do seu aplicativo
- Se estiver usando cookies/autenticação, verifique se Access-Control-Allow-Credentials é true (e a origem não é curinga)
- Garantir que Vary: Origin esteja presente ao permitir múltiplas origens
Validar preflight para Authorization / cabeçalhos personalizados
A maioria das chamadas de API autenticadas aciona preflight devido a Authorization ou tipos de conteúdo não simples. Esta ferramenta ajuda a garantir que as respostas OPTIONS permitam o método e os cabeçalhos necessários.
- Verificar se Access-Control-Allow-Methods inclui POST/PUT/PATCH/DELETE conforme necessário
- Verificar se Access-Control-Allow-Headers inclui authorization, content-type e os cabeçalhos X-* necessários
- Capturar allow-methods/allow-headers ausentes antes da implantação
Revisão de segurança da política de CORS
Configurações incorretas de CORS podem expor APIs privadas a sites maliciosos sem intenção (especialmente com credenciais). Use as descobertas para identificar padrões de alto risco.
- Detectar origem curinga combinada com credenciais
- Detectar padrões de origem refletida que permitem sites arbitrários
- Sinalizar permissão para Origin: null quando não for intencional
Melhorar o desempenho armazenando preflight em cache
Solicitações de preflight adicionam viagens de ida e volta e latência. Um Max-Age correto pode reduzir verificações de preflight repetidas para APIs estáveis.
- Verificar se Access-Control-Max-Age está presente quando apropriado
- Reduzir chamadas OPTIONS repetidas para tráfego frequente de API
❓ Frequently Asked Questions
❓O que é CORS em termos simples?
CORS (Cross-Origin Resource Sharing) é um mecanismo de segurança do navegador que controla se uma página da web de uma origem (esquema + host + porta) pode ler respostas de outra origem. Ele depende de cabeçalhos de resposta Access-Control-* específicos.❓Quando um navegador envia uma solicitação de preflight (OPTIONS)?
❓Por que "Access-Control-Allow-Origin: *" é perigoso com credenciais?
❓Por que preciso de Vary: Origin?
❓O CORS pode proteger minha API de clientes que não são navegadores?
CORS é aplicado pelos navegadores. Scripts executados fora de um navegador (servidores, curl, aplicativos móveis) podem chamar sua API independentemente do CORS. Use autenticação, autorização e limitação de taxa para um controle de acesso real.❓O que devo colocar em "Cabeçalhos da Solicitação" ao testar o preflight?
❓É seguro colar URLs aqui?
Pro Tips
Prefira uma lista de permissões de origens confiáveis em vez de refletir qualquer Origin. Trate o CORS como uma configuração sensível à segurança.
Se você usar cookies/autenticação, defina Access-Control-Allow-Credentials: true E retorne uma origem explícita (não "*").
Adicione Vary: Origin ao permitir múltiplas origens ou ao selecionar dinamicamente a origem permitida.
Adicione um Access-Control-Max-Age razoável para reduzir a latência de preflight em APIs estáveis.
Teste tanto o caminho de preflight quanto o da solicitação real; algumas configurações retornam cabeçalhos corretos para GET, mas falham em OPTIONS.
Exporte relatórios JSON e mantenha-os junto com as alterações de configuração do gateway da API para identificar regressões rapidamente.
Additional Resources
Other Tools
- Embelezador CSS
- Embelezador HTML
- Embelezador Javascript
- Embelezador PHP
- Seletor de Cores
- Extrator de Sprites
- Codificador Binário Base32
- Decodificador Base32
- Codificador Base32
- Codificador Binário Base58
- Decodificador Base58
- Codificador Base58
- Codificador Binário Base62
- Decodificador Base62
- Codificador Base62
- Codificador Binário Base64
- Decodificador Base64
- Codificador Base64
- Codificador Binário Hexadecimal
- Decodificador Hexadecimal
- Codificador Hexadecimal
- Formatador Csharp
- Formatador CSV
- Dockerfile Formatter
- Formatador Elm
- Formatador ENV
- Formatador Go
- Formatador GraphQL
- Formatador HCL
- Formatador INI
- Formatador JSON
- Formatador LaTeX
- Formatador Markdown
- Formatador Objective-C
- Php Formatter
- Formatador Proto
- Formatador Python
- Formatador Ruby
- Formatador Rust
- Formatador Scala
- Formatador de Script Shell
- Formatador SQL
- Formatador SVG
- Formatador Swift
- Formatador TOML
- Typescript Formatter
- Formatador XML
- Formatador YAML
- Formatador Yarn
- Minificador CSS
- Html Minifier
- Javascript Minifier
- Minificador JSON
- Minificador XML
- Cache Headers Analyzer
- Csp Analyzer
- Dns Records Lookup
- Visualizador de Cabeçalhos HTTP
- Http Status Checker
- Open Graph Meta Checker
- Redirect Chain Viewer
- Robots Txt Tester
- Security Headers Checker
- Security Txt Checker
- Sitemap Url Inspector
- Tls Certificate Checker
- PDF para Texto
- Testador de Regex
- Verificador de Classificação SERP
- Consulta Whois