No proxy reverso nginx, como definir o sinalizador seguro para cookies?


12

Estou usando o nginx como proxy reverso para veicular um site somente https. Por isso, quero que os cookies deste site sejam sinalizados como seguros. Mas o servidor back-end é http, portanto não define o sinalizador seguro para seus cookies. Como posso modificar o cabeçalho Set-Cookie em resposta para adicionar um sinalizador seguro?


Perguntado e respondido em SO. Veja SO no exemplo nginx para Tomcat7: stackoverflow.com/questions/19916906/…
Joseph Lust

1
No momento, essa substituição não é possível, mas há um problema / ticket sobre proxy_cookie_secure: trac.nginx.org/nginx/ticket/368 No entanto, ainda não foi implementado (e o problema é antigo).
rugk 15/05

Este módulo de terceiros pode ajudá-lo.
Airis

Respostas:


4

Você pode conseguir que seu proxy nginx modifique os cookies criados pelo back-end e defina o sinalizador seguro - para obter inspiração, consulte Como reescrever a parte do domínio do Set-Cookie em um proxy reverso nginx? .

No entanto, eu imagino que conseguir o que quer que esteja criando o cookie no back-end para definir o sinalizador seguro será uma solução melhor. Como você faz isso é outra história (ou pergunta :).


4
Isso pode ajudá-lo a definir o X-Forwarded-Protocabeçalho e garantir que ele seja interpretado pelo seu aplicativo. Essa é uma técnica comum e também permite que aplicativos http / https misturados reajam corretamente com base no protocolo.
Lukas

4

Eu uso o seguinte código de configuração nginx:

# make cookie secure (case sensitive)
proxy_cookie_domain ~(?P<secure_domain>([-0-9a-z]+\.)?[-0-9a-z]+\.[a-z]+)$ "$secure_domain; secure";

Em vez do regex para tornar isso dinâmico, é claro que você pode usar o FQDN.


É apenas uma resposta ou ambos, solicitação e resposta. Quando o cliente envia uma solicitação com o conjunto de sinalizadores seguros, o nginx retira-o para que o servidor da Web não reclame?
Tigran

Os clientes não enviam de volta o sinalizador seguro no Cookiecabeçalho.
#

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.