Skip to main content
Todos os Termos Glossary

CORS (Cross-Origin Resource Sharing)

Definition

O CORS é um recurso de segurança implementado pelos navegadores que controla como páginas web de um domínio podem solicitar e interagir com recursos de outro domínio. Ele ajuda a impedir o acesso cross-origin não autorizado, ao mesmo tempo que permite o compartilhamento legítimo de dados entre origens. O CORS usa cabeçalhos HTTP para estabelecer um diálogo entre navegadores e servidores, determinando se as requisições cross-origin devem ser permitidas com base na origem e em outros fatores.

Como o CORS funciona

O Cross-Origin Resource Sharing (CORS) é a exceção controlada à same-origin policy. Ele permite que um servidor opte por compartilhar suas respostas com scripts de outras origens ao retornar cabeçalhos HTTP específicos. Para requisições simples, o navegador envia um cabeçalho Origin e verifica o Access-Control-Allow-Origin da resposta antes de deixar o script chamador ler o corpo. Para métodos ou cabeçalhos que poderiam alterar estado, o navegador primeiro envia uma requisição de preflight OPTIONS, e o servidor precisa aprovar o método, os cabeçalhos e a origem. Quando há credenciais envolvidas, como cookies, o servidor precisa definir Access-Control-Allow-Credentials: true e ecoar uma origem específica em vez de um curinga. O navegador impõe tudo isso.

Por que a má configuração é perigosa

O CORS costuma ser afrouxado até que as requisições parem de falhar, o que desmonta silenciosamente as proteções de mesma origem em torno de endpoints sensíveis. Refletir o cabeçalho Origin da requisição de volta no Access-Control-Allow-Origin enquanto também se permitem credenciais, na prática, deixa qualquer site ler respostas autenticadas em nome de uma vítima logada, expondo dados de conta ou tokens. Confiar em um curinga, em uma regex ampla demais que corresponde a subdomínios controlados pelo atacante ou na origem literal null são erros comuns. Como a falha é invisível no uso normal e só aparece quando explorada, um CORS permissivo em uma API é um vetor real de exposição de dados, e não uma configuração meramente cosmética.

Configurando o CORS de forma defensiva

Mantenha uma allowlist explícita de origens confiáveis e compare a Origin recebida com ela de forma exata, em vez de refletir o que quer que chegue. Nunca combine um curinga com requisições que usam credenciais, evite permitir a origem null e restrinja regras permissivas ao conjunto mais estreito de caminhos e métodos que realmente precisam delas. Mantenha o cache de preflight (Access-Control-Max-Age) razoável e reavalie as políticas quando novos subdomínios surgirem. O CORS é um mecanismo neutro da plataforma web, então a defesa principal é a configuração correta do servidor e a revisão; uma camada de monitoramento client-side o complementa ao observar como os scripts de terceiros se comportam, mas o CORS em si pertence aos endpoints que você controla.

Definição

O CORS protege meu servidor de atacantes?

Não diretamente. O CORS é imposto pelo navegador e governa se um script pode ler uma resposta de outra origem; ele não impede clientes que não são navegadores, como o curl ou um proxy do lado do servidor, de ler sua API. Ele protege os usuários de terem suas respostas autenticadas lidas por outros sites, não o servidor de ser chamado.

Definição

Por que vejo uma requisição de preflight OPTIONS antes da minha requisição real?

O navegador envia um preflight para requisições que não são simples, por exemplo aquelas que usam PUT ou DELETE, cabeçalhos personalizados ou certos tipos de conteúdo. Ele pergunta ao servidor, via cabeçalhos, se o método, os cabeçalhos e a origem reais são permitidos antes de enviar a requisição de fato, evitando chamadas inesperadas que alteram estado.

Got more questions

Talk to a security expert

We answer client-side security questions every day. Bring yours.

Agende uma demonstração

Quer ver isso em detalhe com um engenheiro?

Trinta minutos, no seu próprio site. Sem slides.

Agende uma demo personalizada para ver:

Como alcançar a conformidade com os requisitos 6.4.3 e 11.6.1 do PCI DSS em 1 dia
Por que scripts de terceiros são um risco de segurança para você e seus visitantes
Como monitorar vazamentos de privacidade e consentimento (RGPD, CCPA) em cada terceiro
Como conter abuso de cadastros, compartilhamento de contas e fraude de chargeback com device intelligence
Como detectar e controlar agentes de IA e bots que acessam seu site em tempo real

Prefere só mandar uma pergunta?

Procurando horários livres…

Apenas humanos de verdade. A gente saberia.

Problemas para agendar? Abrir o agendador em uma nova aba

O que você está tentando resolver?

Conte em uma linha e voltamos com algo útil, não com um discurso genérico.

Costumamos ajudar com:

Ver quais scripts de terceiros rodam no seu site
Evidências para PCI DSS 6.4.3 e 11.6.1
Bots, agentes de IA e roubo de contas

Prefere agendar um horário? Escolher um horário