Por padrão, o CORS não inclui cookies em solicitações de origem cruzada. Isso é diferente de outras técnicas de origem cruzada, como JSON-P. O JSON-P sempre inclui cookies com a solicitação, e esse comportamento pode levar a uma classe de vulnerabilidades chamada falsificação de solicitação entre sites ou CSRF.
Para reduzir a chance de vulnerabilidades do CSRF no CORS, o CORS exige que o servidor e o cliente reconheçam que não há problema em incluir cookies nas solicitações. Isso faz dos cookies uma decisão ativa, em vez de algo que acontece passivamente sem nenhum controle.
O código do cliente deve definir a withCredentials
propriedade no XMLHttpRequest
para true
para conceder permissão.
No entanto, esse cabeçalho por si só não é suficiente. O servidor deve responder com o Access-Control-Allow-Credentials
cabeçalho. Responder a esse cabeçalho true
significa que o servidor permite que cookies (ou outras credenciais do usuário) sejam incluídas em solicitações de origem cruzada.
Você também precisa garantir que seu navegador não esteja bloqueando cookies de terceiros, se desejar que as solicitações com credenciais de origem cruzada funcionem.
Observe que, independentemente de você estar fazendo solicitações de mesma origem ou de origem cruzada, é necessário proteger seu site do CSRF (especialmente se sua solicitação incluir cookies).