Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: Cookie, JavaScript, document.cookie, HTTP, browser, security

Можно ли получить Cookie через JavaScript?

Этот вопрос проверяет знание механизмов доступа к Cookie через JavaScript и понимание политик безопасности браузера.

Короткий ответ

Да, получить Cookie через JavaScript можно, но с ограничениями. Основной способ — использование свойства `document.cookie`. Оно возвращает строку со всеми Cookie, доступными для текущего источника (домена и пути), которые не помечены как HttpOnly. Cookie с флагом HttpOnly защищены от доступа через JavaScript и могут передаваться только по HTTP(S). Это важная мера безопасности для защиты чувствительных данных, таких как сессионные токены.

Длинный ответ

Веб-приложения часто используют Cookie для хранения небольших фрагментов данных на стороне клиента, таких как идентификаторы сессии или пользовательские настройки. JavaScript предоставляет интерфейс для взаимодействия с этими данными через свойство document.cookie.

Как работает document.cookie

При чтении document.cookie возвращается строка, содержащая все Cookie, доступные для текущей страницы, в формате name=value, разделённые точкой с запятой. Важно понимать, что доступ ограничен политикой того же источника (Same-Origin Policy). JavaScript может читать и записывать только те Cookie, которые принадлежат текущему домену и пути, и у которых не установлен флаг HttpOnly.

Пример чтения и записи Cookie

// Чтение всех доступных Cookie
const allCookies = document.cookie;
console.log(allCookies); // Вывод: "sessionId=abc123; theme=dark"

// Установка нового Cookie
// Указываем имя, значение и дополнительные атрибуты, такие как срок действия (expires) или путь (path).
document.cookie = "username=JohnDoe; expires=Fri, 31 Dec 2024 23:59:59 GMT; path=/";

// После установки document.cookie будет содержать и новый Cookie.
console.log(document.cookie);

Безопасность и флаг HttpOnly

Флаг HttpOnly — это критически важный атрибут безопасности. Когда Cookie помечается как HttpOnly (обычно это делается сервером при установке заголовка Set-Cookie), браузер запрещает любой доступ к ней через JavaScript. Это защищает Cookie от кражи через межсайтовый скриптинг (XSS). Поэтому, хотя JavaScript может читать многие Cookie, самые важные (например, сессионные идентификаторы) часто остаются недоступными.

Практическое применение

  • Хранение предпочтений пользователя: Например, темы интерфейса или языковых настроек, которые можно безопасно хранить в клиентских Cookie.
  • Отслеживание состояния: Простые флаги или токены для аналитики (с учётом регуляторных требований, таких как GDPR).
  • Работа с устаревшими системами: Некоторые старые приложения могут полагаться на клиентские Cookie для передачи данных между страницами.

Вывод: Используйте document.cookie для работы с некритичными данными на клиенте, но никогда не храните в доступных для JavaScript Cookie конфиденциальную информацию — для этого применяйте флаг HttpOnly и серверные сессии.

Уровень

  • Рейтинг:

    3

  • Сложность:

    2

Навыки

  • JavaScript

    JavaScript

  • HTML

    HTML

Ключевые слова

#Cookie

#JavaScript

#document.cookie

#HTTP

#browser

#security

Подпишись на React Developer в телеграм