Nginx Incluir Sinalizador Seguro aos Cookies do servidor proxy

10

A Mozilla acaba de lançar uma nova ferramenta para verificar a configuração do seu site. observatory.mozilla.org

Mas o scan está reclamando Cookies (-10 pontos): conjunto de cookies de sessão sem o sinalizador Secure ...

Infelizmente o serviço rodando atrás do meu nginx só pode configurar o cabeçalho seguro se o SSL terminar lá diretamente e não quando o SSL terminar no nginx. Assim, o sinalizador "Seguro" não está definido nos cookies.

É possível anexar o sinalizador "seguro" aos cookies de alguma forma usando o nginx? Modificar a localização / caminho parece ser possível.

link

link

    
por ST-DDT 29.08.2016 / 18:57

2 respostas

11

Eu sei duas maneiras de fazer isso, nenhuma delas ótima. A primeira é apenas abusar proxy_cookie_path assim:

proxy_cookie_path / "/; secure";

O segundo é usar a diretiva more_set_headers do módulo Headers More como este:

more_set_headers 'Set-Cookie: $sent_http_set_cookie; secure';

Ambos podem causar problemas porque eles adicionam os itens às cegas. Por exemplo, se o upstream definir o sinalizador secure , você acabará enviando ao cliente uma duplicata como esta:

Set-Cookie: foo=bar; secure; secure;

e no segundo caso, se o aplicativo upstream não definir um cookie, o nginx enviará para o navegador:

Set-Cookie; secure;

Isso é doubleplusungood, é claro.

Eu acho que esse problema precisa ser corrigido como muitas pessoas perguntaram sobre isso. Na minha opinião, uma diretiva é necessária algo assim:

proxy_cookie_set_flags * HttpOnly;
proxy_cookie_set_flags authentication secure HttpOnly;

mas, infelizmente, isso não existe atualmente: (

    
por 02.09.2016 / 17:02
2

Tente usar nginx_cookie_flag_module . Isso resolverá seu problema.

Aviso: Eu sou o autor do módulo.

    
por 17.03.2017 / 11:35