Флаг Session Cookie HTTPOnly не установлен при ответе на выход из системы (Django)

У меня есть приложение Django, и я настраиваю некоторые параметры безопасности. Одной из настроек является флаг SESSION_COOKIE_HTTPONLY. Я установил этот флаг в True.

При создании сеанса (входе в систему) я вижу установленный флаг сеанса HTTPOnly, если я проверяю файлы cookie. При выходе сервер отправляет обратно обновление файла cookie сеанса с пустым значением, чтобы показать, что файл cookie был уничтожен. Этот пустой файл cookie не отправляется обратно с установленным флагом httpOnly.

Мой вопрос: это проблема безопасности? Есть ли способ заставить Django установить этот флаг при выходе из системы? Или это просто ожидаемое поведение и не является проблемой безопасности, поскольку возвращаемый файл cookie сеанса пуст?


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


Ответы (1)


При выходе из системы сервер возвращает обновление файла cookie сеанса с пустым значением, чтобы показать, что файл cookie был уничтожен.

Флаг HTTPOnly установлен для предотвращения раскрытия секретного идентификатора сеанса уязвимостью XSS. Когда файл cookie «удаляется», устанавливая для него пустое значение, все конфиденциальные данные удаляются из файла cookie. Злоумышленнику не нужно пустое значение, поэтому нет необходимости устанавливать флаг HTTPOnly.

Кроме того, срок действия установлен в прошлом, а max-age установлен на 0. Клиент немедленно удалит файл cookie, не оставив злоумышленнику возможности прочитать файл cookie с помощью атаки XSS.

person knbk    schedule 18.11.2015
comment
Прохладный. Я подумал, что дело в этом. Спасибо за подтверждение! - person Brian Ambielli; 18.11.2015