Я знаю, что cookie с флагом secure не будет отправлен через незашифрованное соединение. Интересно, как это работает в глубину.
Кто несет ответственность за определение отправки cookie или нет?
Ответ 1
Клиент устанавливает это только для зашифрованных соединений, и это определено в RFC 6265:
Атрибут Secure ограничивает область действия cookie "защищенными" каналами (где "защищенный" определяется пользовательским агентом). Когда cookie имеет атрибут Secure, пользовательский агент будет включать файл cookie в HTTP-запрос только в том случае, если запрос передается по защищенному каналу (обычно HTTP через Transport Layer Security (TLS) [RFC2818]).
Несмотря на кажущуюся полезность защиты файлов cookie от активных сетевых злоумышленников, атрибут Secure защищает только конфиденциальность файлов cookie. Активный сетевой злоумышленник может перезаписывать защищенные файлы cookie с небезопасного канала, нарушая их целостность (подробнее см. Раздел 8.6).
Ответ 2
Еще одно слово по теме:
Опускание secure, потому что ваш сайт example.com полностью https не достаточно.
Если ваш пользователь явно достигает http://example.com, он будет перенаправлен на https://example.com, но уже слишком поздно первый запрос содержит файл cookie.