Удаление конкретного cookie по имени через JavaScript
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Для эффективного удаления cookie используйте следующую строку кода:
document.cookie = 'cookieName=; Max-Age=-1;';
Замените 'cookieName'
на имя удаляемой вам нужной cookie. Присвоение значения Max-Age равного -1
сообщает браузеру о неободимости незамедлительного удаления cookie.
Указание пути и домена при удалении cookie
При удалении cookie важно не забыть указать путь и домен, заданные при ее создании. В противном случае, удаление может оказаться неэффективным:
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
:
// Иногда требуется удалить cookie на сервере.
res.clearCookie('cookieName', { path: '/', domain: 'example.com' });
Создайте собственную функцию для удаления
Функция удаления cookie поможет облегчить вашу работу и поддерживать порядок в коде:
// Обращайтесь с 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 с помощью инструментов браузера
Современные инструменты разработчика позволяют удобно просматривать и удалять cookie на подобие вкладок Application или Storage в Chrome или Storage Inspector в Firefox.
Дополнительные аспекты
- Secure cookie передают данные только через HTTPS.
- При установке и удалении cookie все ее атрибуты, включая
Domain
,Path
и флаги вродеSecure
, должны совпадать. - При удалении сессионных или аутентификационных cookies также оновите логику на сервере для обеспечение максимальной безопасности.
Визуализация
Удаление cookie можно аналогично описать как разминирование опасного устройства на панели, полной ловушек:
Панель Cookie: [💣=session, 💣=user, 💣=theme, 💣=cart]
Одним неотъемлемым действием вы 'разминировываете` cookie:
document.cookie = "user=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";
И вуаля — cookie 'user' удалено:
После разминирования: [💣=session, 🕳️=user (удалено), 💣=theme, 💣=cart]
Ваша задача — аккуратно и безопасно обезвредить все cookie.
Стратегии для поэффективного управления cookies
- Воспользуйтесь браузерными плагинами или инструментами разработчика для наглядного просмотра и управления cookies.
- Для кросс-доменных cookies применяйте серверные скрипты.
- Через заголовок
Set-Cookie
в ответах сервера отправляйте истекшие даты и правильные атрибуты для удаления cookie. - Если cookie защищено флагом
HttpOnly
, используйте запросы XMLHttpRequest или Fetch API для обращения к серверному эндпойнту и удаления cookie.
Полезные материалы
- Document: cookie property – Web APIs | MDN — документация MDN об управлении cookies в JavaScript.
- JavaScript Cookies — обучающий материал по созданию, чтению и удалению cookies от W3Schools.
- How to delete a cookie? – Stack Overflow — ответы на вопросы о управлении cookies от сообщества Stack Overflow.
- Cookies, document.cookie — подробное руководство по
document.cookie
. - JavaScript – Cookies — основы создания и удаления cookies с использованием чистого JavaScript.
- Cross Site Request Forgery (CSRF) | OWASP Foundation — подробная информация от OWASP о защите от CSRF и других угроз, связанных с cookies.