it-roy-ru.com

Как установить безопасный флаг cookie, используя JavaScript

Я пытался установить cookie с помощью document.cookie = "tagname = test; secure", но это не устанавливает безопасный флаг. Я неправильно это установил? Вы можете установить его только из ответа сервера? Мне также интересно, что, поскольку мне было трудно найти пример его использования, что он, вероятно, не используется обычно?

Огромное спасибо!

20
BobtheMagicMoose

TL: DR

document.cookie = "tagname = test;secure";

Вы должны быть в HTTPS для установки защищенного атрибута

Нормальное (или формальное, может быть) имя является атрибутом. Поскольку флаг относится к другим вещам (проверьте ниже). 

Больше информации

Атрибуты cookie:

Безопасный - Cookie будет отправлен по безопасному каналу - HTTPS

HttpOnly - не разрешать локальным скриптам читать куки.

Домен - дважды проверьте настройки домена.

Путь - перепроверьте настройки пути.

Истекает - Определите пользовательский агент, как анализировать или как выбрать время истечения. 

Более подробная информация и практическое использование. Проверить Testing_for_cookies_attributes_ (OTG-SESS-002)

Флаги Печенья

Флаги cookie - это префиксы. В настоящее время они описаны в проекте RFC как обновление к RFC6265

Эти флаги используются с атрибутом «secure».

__Secure-

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

__Host-

Файл cookie с этим флагом 1) не должен иметь атрибута «домен», он будет отправлен только на хост, который его установил. 2) Должен иметь атрибут «путь», который установлен на «/», потому что он будет отправляться Хосту в каждом квесте от Хоста.

Надеюсь, я ничего не понял неправильно, эти «формальные тексты» для меня немного трудны, исправьте или отредактируйте их, чтобы сделать их более удобочитаемыми, и мы будем благодарны.

33
Jacob

потому что флаг называется secure , а не security:

document.cookie = "tagname = test;secure";
1
Tudor Constantin