ПРИХОДИТЕ УЧИТЬСЯ НОВОЙ ПРОФЕССИИ ЛЕТОМ СО СКИДКОЙ ДО 70%Забронировать скидку
logo

Удаление конкретного cookie по имени через JavaScript

Пройдите тест, узнайте какой профессии подходите и получите бесплатную карьерную консультацию
В конце подарим скидку до 55% на обучение
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для эффективного удаления cookie используйте следующую строку кода:

JS
Скопировать код
document.cookie = 'cookieName=; Max-Age=-1;';

Замените 'cookieName' на имя удаляемой вам нужной cookie. Присвоение значения Max-Age равного -1 сообщает браузеру о неободимости незамедлительного удаления cookie.

При удалении cookie важно не забыть указать путь и домен, заданные при ее создании. В противном случае, удаление может оказаться неэффективным:

JS
Скопировать код
document.cookie = 'cookieName=; Path=/; Domain=example.com; Max-Age=-1;';

Рекомендуется всегда устанавливать корневой путь (/), если при создании cookie было определено иное значение. Для cookie, распространяющихся на поддомены (например, .example.com), стоит указывать исходный домен.

Борьба с HttpOnly и secure cookies

Некоторые cookies ограничены атрибутом HttpOnly и не подлежат удалению через JavaScript. Это превентивная мера против XSS-атак. Secure cookie можно удалить исключительно через HTTPS.

Для удаления HttpOnly или Secure cookie на серверном уровне в Node.js Express возпользуйтесь методом clearCookie:

JS
Скопировать код
// Иногда требуется удалить cookie на сервере.
res.clearCookie('cookieName', { path: '/', domain: 'example.com' });

Создайте собственную функцию для удаления

Функция удаления cookie поможет облегчить вашу работу и поддерживать порядок в коде:

JS
Скопировать код
// Обращайтесь с cookie уважительно!
function deleteCookie(name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=; Path=" + path + "; Domain=" + domain + "; Max-Age=-1;";
  }
}

С помощью deleteCookie('cookieName', '/', 'example.com'); вы легко избавитесь от ненужной cookie, указав правильные путь и домен.

Современные инструменты разработчика позволяют удобно просматривать и удалять cookie на подобие вкладок Application или Storage в Chrome или Storage Inspector в Firefox.

Дополнительные аспекты

  • Secure cookie передают данные только через HTTPS.
  • При установке и удалении cookie все ее атрибуты, включая Domain, Path и флаги вроде Secure, должны совпадать.
  • При удалении сессионных или аутентификационных cookies также оновите логику на сервере для обеспечение максимальной безопасности.

Визуализация

Удаление cookie можно аналогично описать как разминирование опасного устройства на панели, полной ловушек:

Markdown
Скопировать код
Панель Cookie:   [💣=session, 💣=user, 💣=theme, 💣=cart]

Одним неотъемлемым действием вы 'разминировываете` cookie:

JS
Скопировать код
document.cookie = "user=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";

И вуаля — cookie 'user' удалено:

Markdown
Скопировать код
После разминирования: [💣=session, 🕳️=user (удалено), 💣=theme, 💣=cart]

Ваша задача — аккуратно и безопасно обезвредить все cookie.

Стратегии для поэффективного управления cookies

  • Воспользуйтесь браузерными плагинами или инструментами разработчика для наглядного просмотра и управления cookies.
  • Для кросс-доменных cookies применяйте серверные скрипты.
  • Через заголовок Set-Cookie в ответах сервера отправляйте истекшие даты и правильные атрибуты для удаления cookie.
  • Если cookie защищено флагом HttpOnly, используйте запросы XMLHttpRequest или Fetch API для обращения к серверному эндпойнту и удаления cookie.

Полезные материалы

  1. Document: cookie property – Web APIs | MDN — документация MDN об управлении cookies в JavaScript.
  2. JavaScript Cookies — обучающий материал по созданию, чтению и удалению cookies от W3Schools.
  3. How to delete a cookie? – Stack Overflow — ответы на вопросы о управлении cookies от сообщества Stack Overflow.
  4. Cookies, document.cookie — подробное руководство по document.cookie.
  5. JavaScript – Cookies — основы создания и удаления cookies с использованием чистого JavaScript.
  6. Cross Site Request Forgery (CSRF) | OWASP Foundation — подробная информация от OWASP о защите от CSRF и других угроз, связанных с cookies.