Должны ли запрашиваемые файлы cookie иметь установленный безопасный флаг?

У меня есть приложение Джанго. Это приложение имеет 2 основных файла cookie, которые возвращаются с сервера (csrftoken и sessionid). Я установил для флагов SESSION_COOKIE_SECURE и CSRF_COOKIE_SECURE в моем файле settings.py значение True, и если я проверю первоначальный запрос на вход в свое приложение, я увижу, что оба этих файла cookie имеют установленный «безопасный» флаг в ответе от сервера.

Когда я изучаю файлы cookie в своем приложении, я замечаю, что есть «файлы cookie запроса» и «файлы cookie ответа». «Ответные файлы cookie» — это те, у которых установлены флаги. Файлы cookie запросов не поддерживаются.

Мой вопрос: есть ли способ заставить «запросить файлы cookie» установить безопасный флаг? Это вообще забота о безопасности? Трафик моего приложения проходит через https, поэтому все соединения между браузером и сервером уже будут зашифрованы с этого...


person Brian Ambielli    schedule 16.11.2015    source источник


Ответы (1)


На самом деле это так не работает... Флаги присутствуют только в заголовке Set-Cookie (ответ).

Когда клиент (браузер) получает заголовок Set-Cookie, он сохраняет флаги вместе со значением файла cookie, но только для собственного использования (чтобы сам браузер мог знать, когда и куда отправлять значение cookie, если необходимо).

Заголовок Cookie (запрос) не может содержать флаги; это всего лишь список <cookie-name>=<cookie-value> пар, и когда вы (сервер) получаете их, вы даже не гарантируете, что установили их сами.
Это потому, что любое приложение под тем же доменным именем может установить файлы cookie для этого указанного домена. Например, приложение, запущенное на example.com/foo, сможет установить файл cookie для example.com/bar или даже для another.example. ком.

Однако, исключая возможность действительно ужасных ошибок браузера, вы можете быть уверены, что если вы установите флаг «защищенный» для файла cookie в своем ответе, принимающий браузер не отправит его по незашифрованному соединению.
Это так. на самом деле не на 100%, но это действительно единственный вариант, который у вас есть, и почти вся сеть зависит от правильного поведения браузеров, так что вы не одиноки в этом.

К сожалению, именно так работают файлы cookie. Прочтите официальный стандарт для них здесь, если вы хотите узнать о них больше.

person Narf    schedule 15.03.2016