CORS (sigla de Cross‑Origin Resource Sharing, ou Compartilhamento de Recursos entre Origens) é um mecanismo de segurança baseado em cabeçalhos HTTP que permite que aplicações web façam requisições para servidores de domínios diferentes daquele em que a aplicação foi carregada, controlando quais origens podem acessar recursos externos de forma segura.
Contexto e motivo do CORS
Por padrão, navegadores implementam a política de mesma origem (Same‑Origin Policy), que restringe scripts em uma página web de acessarem recursos de outra origem — definida por combinação de protocolo, domínio e porta — para proteger dados sensíveis e evitar ataques maliciosos.
- Origem: combinação de protocolo, host (domínio) e porta de onde a aplicação web foi carregada.
- Requisição cross‑origin: quando um app web hospedado em uma origem tenta acessar um recurso (API, fonte, script, etc.) de outra origem.
O CORS foi criado para “relaxar” essa restrição de forma controlada e segura, permitindo acessos legítimos entre origens diferentes sem abrir brechas de segurança.
Como funciona o CORS
O CORS funciona mediante a troca de cabeçalhos HTTP entre o navegador (cliente) e o servidor, onde o servidor define quais origens e métodos são permitidos.
- Preflight (pré‑verificação): os navegadores podem enviar uma requisição HTTP
OPTIONSpara testar se a origem e o método desejados são aceitos antes da requisição principal. - Access‑Control‑Allow‑Origin: cabeçalho que indica quais origens têm permissão para acessar os recursos do servidor.
- Access‑Control‑Allow‑Methods: define os métodos HTTP (como GET, POST, PUT) autorizados.
- Access‑Control‑Allow‑Headers: especifica quais cabeçalhos personalizados podem ser usados na requisição.
Principais casos de uso do CORS
O CORS é essencial em aplicações web modernas que dependem de recursos distribuídos e APIs externas.
- APIs Web: permitir que aplicações front‑end hospedadas em um domínio consumam APIs hospedadas em outro.
- Integração de serviços de terceiros: como serviços de mapas, redes sociais ou serviços de terceiros (CDNs) que expõem dados ou recursos.
- Web fonts e conteúdo multimídia: uso de fontes, imagens ou texturas carregadas de outros domínios.
- Aplicações SPA (Single Page Applications): que realizam requisições AJAX ou Fetch para back‑ends externos.
Vantagens e considerações de segurança
Implementar CORS corretamente proporciona:
- Segurança reforçada: o servidor controla quem pode acessar seus recursos, minimizando riscos de acesso não autorizado. :contentReference[oaicite:15]{index=15}
- Flexibilidade: permite construir aplicações distribuídas que dependem de múltiplos domínios.
No entanto, uma configuração CORS demasiadamente permissiva — como o uso de coringas indiscriminados (`*`) — pode expor vulnerabilidades e permitir que sites maliciosos façam requisições não intencionadas se não houver validação adicional.
Erros comuns relacionados ao CORS
- Falta de cabeçalho apropriado: se o servidor não retorna os cabeçalhos necessários, o navegador bloqueia a requisição.
- Configuração excessiva de permissões: permitir origens irrestritas pode comprometer a segurança.