Як працює прапор cookie "Безпечний"?


101

Я знаю, що cookie з secureпрапором не надсилатиметься через незашифроване з'єднання. Цікаво, як це працює поглиблено.

Хто несе відповідальність за визначення того, буде cookie надсилатися чи ні?

Відповіді:


91

Клієнт встановлює це лише для зашифрованих з'єднань, і це визначено в RFC 6265 :

Атрибут "Безпечний" обмежує область cookie "захищених" каналів (де "захищений" визначений користувальницьким агентом). Коли файл cookie має атрибут Secure, агент користувача включатиме файл cookie в HTTP-запит, лише якщо запит передається по захищеному каналу (як правило, HTTP через безпеку транспортного рівня (TLS) [RFC2818]).

Хоча здавалося б корисним для захисту файлів cookie від активних мережевих зловмисників, атрибут Secure захищає лише конфіденційність файлу cookie. Активний мережевий зловмисник може перезаписати захищені файли cookie з незахищеного каналу, порушуючи їх цілісність (детальніше див. Розділ 8.6).


4
у випадку, якщо на стороні клієнта ще немає файлу cookie, і вони повинні бути надіслані з боку сервера (наприклад, увійти в систему), чи буде сервер вирішити включити файл cookie у відповідь?
тед

3
Сервер спочатку встановлює файли cookie через "Set-Cookie заголовки"
Іван

49

Ще одне слово на цю тему:

Опущення, secureоскільки веб-сайт example.comповністю https, недостатньо.

Якщо ваш користувач явно звертається http://example.com, він буде переспрямований, https://example.comале це вже пізно; перший запит містив печиво.


6
Я знаю, що це давно, але попереднє завантаження HSTS допомагає цій ситуації, запобігаючи частому виникненню цієї проблеми. Це все ще не на 100% виправлення, але це лише інша річ, яку слід врахувати, якщо ви дійсно хочете уникати безпечного файлу cookie.
Містер MonoChrome

5
@ Mr.MonoChrome Чому ви хочете уникати безпечного файлу cookie?
ПАМ'ЯТЬ

@ Mr.MonoChrome, хоча деякі старші або нижчі специфікатори, я вважаю, навіть не підтримують HSTS
oldboy

1
Гарна думка. Для програм .NET краще робити переадресацію в IIS (або web.config), а не програмно (наприклад, globals.asax)
piris

Тож якби ви не переспрямовувались з http на https, а працювали лише на https, вам би не знадобилося secure?
гальмо
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.