Permitindo todos os cabeçalhos no CORS

1

Eu quero configurar o meu Apache 2.4 para servir alguns recursos estáticos de uma maneira amigável ao CORS. Eu já tenho a seguinte configuração:

Header always set Access-Control-Allow-Origin "*"

No entanto, para o Safari recente, isso parece não ser suficiente:

[Error] Failed to load resource: Request header field … is not allowed by Access-Control-Allow-Headers.

Os campos mencionados desta maneira incluem Accept-Encoding e DNT , mas acho que depois de adicioná-los eu também posso ver Cache-Control , Origin e Accept-Language , já que esses são os mencionados em Access-Control-Request-Headers cabeçalho enviado pelo Safari. Mas quem vai me dizer que outros cabeçalhos o Safari ou algum outro navegador pode estar solicitando, agora ou no futuro, para mim ou para algum outro usuário com uma configuração diferente? Aparentemente * não é uma configuração válida para o cabeçalho Access-Control-Allow-Headers , por razões que eu realmente não entendo.

Então, como eu configuro um servidor para apenas dizer "use esses recursos em qualquer lugar, não me importo com o CORS para eles"?

    
por MvG 29.08.2016 / 16:32

2 respostas

3

* agora é um valor válido para Access-Control-Allow-Headers , pelo menos para solicitações não credenciadas; mas como essa é uma recente adição à especificação , ela provavelmente ainda não alcançou os navegadores.

    
por 29.08.2016 / 18:47
0

Uma solução que descobri é que, em vez de adicionar cabeçalhos explicitamente, você pode simplesmente repetir todos os cabeçalhos solicitados de volta para o navegador. Essa abordagem foi sugerida aqui no Stack Overflow , mas essa postagem não forneceu uma configuração estática para isso.

Depois de ler a documentação em Header e expressões Consegui isso usando a seguinte linha:

Header always set Access-Control-Allow-Headers "expr=%{req:Access-Control-Request-Headers}"

Não tenho certeza sobre as implicações de segurança que isso pode ter, portanto, use a seu próprio risco, como de costume.

    
por 29.08.2016 / 16:32