Passar para o conteúdo principal
Todas as coleçõesConfigurações
Entenda como utilizar a política CORS na Digibee Integration Platform
Entenda como utilizar a política CORS na Digibee Integration Platform

Este artigo explica o que é a política de segurança CORS e como se aplica na plataforma Digibee.

Guilherme Jola Ferreira avatar
Escrito por Guilherme Jola Ferreira
Atualizado há mais de um ano

CORS (Cross-Origin Resource Sharing) é uma política de segurança implementada pelos navegadores da web que permite que um servidor restrinja quais origens podem acessar seus recursos por meio de solicitações HTTP.

É recomendado o uso do CORS sempre que um aplicativo web precise fazer requisições HTTP para recursos em um domínio ou porta diferente do que o aplicativo está sendo hospedado. Isso ajuda a proteger o servidor contra ataques maliciosos que possam tentar acessar recursos indevidamente.

Como funciona?

Quando uma página da web faz uma requisição para um domínio diferente, o navegador enviará primeiro uma solicitação de "Preflight" para o servidor desse domínio que verificará se solicitação é permitida, o servidor responderá com um conjunto de cabeçalhos que indicam se a solicitação é permitida ou não, se a solicitação for permitida, então o navegador enviará a solicitação real.

Headers

Alguns dos cabeçalhos mais comuns usados ​​no CORS incluem:

  • Access-Control-Allow-Origin: Especifica quais origens são permitidas a acessar o recurso. Pode ser um valor único (*), que permite que qualquer origem acesse o recurso, ou uma lista de domínios específicos.

  • Access-Control-Allow-Methods: Especifica quais métodos HTTP são permitidos na solicitação de recurso (por exemplo, GET, POST, DELETE, etc.).

  • Access-Control-Allow-Headers: Especifica quais cabeçalhos personalizados são permitidos na solicitação de recurso. É necessário especificar isso para que um cabeçalho personalizado como "Authorization" possa ser enviado com a solicitação.

  • Access-Control-Expose-Headers: Especifica quais cabeçalhos personalizados são expostos para a solicitação de recurso.

  • Access-Control-Allow-Credentials: Especifica se o recurso pode ser acessado com credenciais (por exemplo, cookies, cabeçalhos de autorização, etc.) pela solicitação de origem.

CORS na Digibee

CORS está disponivel para os triggers HTTP, HTTP-FILE e REST.

Pode-se utilizar o CORS individualmente nos pipelines, ou pode ser configurado para todo o realm, através da Configuração Global de CORS.

Exemplos:

Autorizamos para o pipeline utilizando o trigger REST os métodos GET e OPTIONS. Ativamos o CORS e definimos os headers Access-Control-Allow-Origin para aceitar qualquer (*) origem, Access-Control-Allow-Methods para aceitar apenas o método GET e o Access-Control-Allow-Headers para aceitar requisições que possam conter apenas os headers Authorization, Content-Type e apikey.

Request com sucesso (autorizado pelo navegador)

Efetuamos um request pelo navegador Google Chrome, utilizando o método GET, e os headers Content-Type e apikey.

O navegador faz o "Preflight" para o endpoint da Digibee utilizando o método OPTIONS, que retorna os headers CORS, como o request atende a política CORS definida configurada no trigger do Pipeline, estamos autorizados a seguir com o GET request.

Agora seguimos com o fluxo normal do pipeline, que seria o request GET, que é retornado com sucesso.

Exemplo de request sem sucesso 1 (negado pelo navegador)

Fazemos o mesmo request, porém adicionando o Header "test" no nosso request.

Como o Header "test" não foi autorizado, a requisição foi bloqueada pela politica do CORS. E o GET Request não irá chegar na Digibee.

Exemplo de request sem sucesso 2 (negado pelo navegador)

Neste exemplo os headers estão de acordo com a política CORS, porém, o verbo utilizado pela chamada no navegador não está configurado no nosso trigger.

Isso gerará um erro 404 Not found


Respondeu à sua pergunta?