CORS
Significa "Cross-Origin Resource Sharing." O CORS permite que scripts em páginas da Web solicitem recursos de outros domínios. A maioria dos navegadores da Web bloqueia esses tipos de solicitação por padrão por motivos de segurança.
Uma página da Web pode solicitar recursos de outro domínio — desde que as solicitações venham do HTML. Por exemplo, a seção <head> pode fazer referência a recursos, como arquivos CSS, fontes e arquivos JS de outros domínios. Alguns exemplos são scripts do Google Analytics, bibliotecas jQuery e fontes hospedadas em outro servidor. Da mesma forma, <body> pode solicitar imagens de uma CDN ou de outro domínio. As solicitações de recursos de origem cruzada no HTML não exigem permissões do CORS.
Quando um script ou elemento iframe faz uma solicitação de origem cruzada, o CORS é necessário. Por exemplo, um método AJAX — que é executado depois que a página é carregada — não pode solicitar um recurso de outro domínio. O CORS substitui essa configuração padrão do navegador e permite que a solicitação seja concluída.
O CORS é implementado usando cabeçalhos HTTP de "controle de acesso". Um administrador de servidor pode adicionar ou modificar os cabeçalhos de resposta, que são enviados ao navegador do cliente quando uma página da Web é acessada. Essas configurações, que podem ser aplicadas a servidores Apache e IIS, podem ser específicas de um site ou abranger todo o servidor. Veja abaixo cabeçalhos comuns de solicitação e resposta:
Cabeçalhos de solicitação do CORS:
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
Cabeçalhos de resposta do CORS:
- Access-Control-Allow-Origin
- Access-Control-Allow-Methods
- Access-Control-Expose-Headers
Exemplo de CORS
Se um script em techterms.com solicitar um recurso de sharpened.com usando uma ação GET, ele poderá enviar os seguintes cabeçalhos de solicitação:
Origin: https://techterms.com
Access-Control-Request-Method: GET
Para permitir a solicitação, sharpened.com poderá responder com os seguintes cabeçalhos:
Access-Control-Allow-Origin: https://techterms.com
Access-Control-Allow-Methods: GET
Access-Control-Allow-Origin pode ser configurado para domínios específicos ou para um curinga usando um asterisco (*). A configuração de curinga permite solicitações de recursos de origem cruzada de todos os domínios, o que pode representar um risco de segurança. Access-Control-Allow-Methods pode ser configurado como PUT, POST, DELETE e outros métodos, incluindo uma configuração de curinga (*) que permite todos os métodos.
Teste seus conhecimentos