Cross-origin resource sharing (CORS)

O Cross-origin resource sharing, ou simplesmente CORS, é uma especificação de uma tecnologia de navegadores que define meios para um servidor permitir que seus recursos sejam acessados por uma página web de um domínio diferente. Em português, é traduzido como compartilhamento de recursos de origem cruzada, ou seja,  essa tecnologia é quem define a forma como um navegador e um servidor podem ou devem interagir, determinando assim, se devem ou não permitir uma determinada requisição.

O suporte a CORS foi originalmente proposto por Matt Oshry, Brad Porter, and Michael Bodell da Tellme Networks em março de 2004 para a inclusão no VoiceXML2.1, para assim, permitir requisições de dados cross-orign de forma segura por navegadores VoiceXML.

A implementação do CORS em um site, é muito simples, basta acrescentar essa linha, ao cabeçalho do documento.

Esse comando, irá permitir que qualquer domínio externo ao seu, faça requisições. Isso é muito utilizado, quando trabalhamos com APIs REST. Sem essa permissão no CORS, nenhum usuário conseguirá utilizar sua API.

Isso porque existe uma funcionalidade de segurança chamada Same-Origin Policy, onde um recurso presente em uma um site somente poderá ser chamado por outro, caso ambos estejam sob o mesmo domínio, limitando por exemplo chamadas de APIs REST por aplicações JS.

Anteriormente à implementação do CORS, somente era possível a realização de requisições à outos domínios, mediante o uso do chamado JSONP (JSON with padding), que é um método para envio de dados JSON sem se a preocupação com problemas entre domínios distintos, porém limitando-se somente a chamadas tipo GET, o que causa bastante transtorno, visto que APIs baseadas em REST, utilizam vários tipos, tais como POST, PUT e DELETE.

Em um próximo post, vamos tentar fazer um exemplo com o CORS.

Claudeci Goularte

Programador com mais de 11 anos de experiência, graduado em Análise e Desenvolvimento de Sistemas, e pós graduado em MBA em Arquitetura de Software. Sou Sócio fundador e administrador na empresa Kamoney Empreendimentos Digitais Ltda.

Você pode gostar...

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *