Configuração de segurança de cookies
Solução
Para minimizar o escopo de vulnerabilidades de cookies em seu site, limite o acesso aos cookies o máximo possível. Isso pode ser feito por meio do uso sensato das seguintes diretivas do cabeçalho Set-Cookie:
Name
- Use __Host- para todos os cookies necessários apenas em um domínio específico (sem subdomínios) onde o caminho esteja definido como /.
- Use __Secure- para todos os outros cookies enviados de origens seguras (HTTPS).
Secure
HttpOnly
Expires e Max-Age
- Expires: Define uma data de expiração absoluta para um determinado cookie.
- Max-Age: Define uma data de expiração relativa para um determinado cookie.
Domain
Path
SameSite
Proíbe o envio de cookies por meio de solicitações entre origens (por exemplo, de elementos <img>) usando SameSite. Você deve usar um dos dois valores a seguir:
- SameSite=Strict: Envia o cookie apenas em contextos de mesmo site (navegações e outras solicitações). Os cookies são omitidos em solicitações entre sites (por exemplo, incorporação de imagens ou outros recursos de outros sites) e navegação entre sites (por exemplo, ao seguir um link de uma página diferente). Esta é uma configuração muito rigorosa, mas fornece forte proteção contra CSRF, portanto, use este valor se possível.
- SameSite=Lax: Envia o cookie em solicitações entre sites e ao navegar para o seu site. Este valor deve ser usado se Strict for muito restritivo.
Ambos os valores acima são úteis na proteção contra ataques de clickjacking em casos que dependem da autenticação do usuário.
Configurações
Usando a diretiva "add_header"
Para definir o cookie como HTTPOnly e Secure no cabeçalho de resposta HTTP, edite o arquivo /etc/nginx/nginx.conf e dentro do bloco http, adicione a configuração:
http {
...
add_header Set-Cookie "HttpOnly; Secure; SameSite=Lax";
...
}
Reinicie o Nginx para ver os resultados:
service nginx restart
A configuração acima irá refletir em todos os aplicativos instalados no mesmo servidor. Caso queira configurar os aplicativos individualmente, esta configuração deve ser feita dentro de cada vHost configurado, disponíveis em /etc/nginx/sites-available.