Флаг SECURE не отображается для файла cookie JSESSIONID - PullRequest
0 голосов
/ 15 марта 2019

Приложение развернуто на AWS и обслуживает порт 80, а ELB передает с 80 до 443. Безопасность Spring используется для сеанса, который создает cookie с установленным флагом безопасности. Когда я нажал на имя хоста приложения, я увидел, что установлен безопасный флаг, как показано ниже.

curl -I target_hostname

Set-Cookie: JSESSIONID = XXXXXXXX; Path = /; Безопасный; HttpOnly

Но когда я напрямую нажал на EC2 IP (используя curl), я увидел, что безопасный флаг не установлен.

curl -I target_ec2_ip

Set-Cookie: JSESSIONID = XXXXXXXX; Path = /; HttpOnly

Почему это происходит, кто-нибудь может объяснить?

1 Ответ

0 голосов
/ 15 марта 2019

Я собираюсь предположить, что вы прекращаете SSL на ELB, и вы связываетесь с экземпляром EC2 напрямую через HTTP (порт 80).В этом случае применимо следующее:

RFC 6265 :

Если cookie-only-only-flag cookie имеет значение true, тогда схема request-uri должнаобозначает «безопасный» протокол (как определено пользовательским агентом).

ПРИМЕЧАНИЕ. Понятие «безопасный» протокол не определено в этом документе.Как правило, пользовательские агенты считают протокол безопасным, если протокол использует защиту транспортного уровня, такую ​​как SSL или TLS.

MDN doc является более явным:

Небезопасные сайты (http :) больше не может устанавливать файлы cookie с помощью директивы «secure» (впервые в Chrome 52+ и Firefox 52+).

...