Загрузка...
Загрузка...
Нашли баг, сбой или ошибку в работе reChecker? Есть предложение по улучшению? Напишите нам, чтобы мы проверили и исправили проблему в сервисе.
Настройка безопасных cookies: Secure, HttpOnly, SameSite. Защита от XSS, CSRF, перехвата. Примеры для разных языков и фреймворков.
Быстрые определения и связанные понятия из SEO-глоссария reChecker.
Cookie (куки) — небольшие файлы данных, сохраняемые браузером. Используются для авторизации, аналитики и персонализации. GDPR требует согласия на аналитические куки.
Читать в глоссарии →Минификация (minification) — удаление лишних символов из CSS, JS и HTML без изменения функциональности. Уменьшает размер файлов на 20-60%.
Читать в глоссарии →CSP — HTTP-заголовок безопасности, запрещающий выполнение посторонних скриптов и загрузку ресурсов с чужих сайтов. Защищает от XSS-атак.
Читать в глоссарии →HSTS (HTTP Strict Transport Security) — заголовок безопасности, принудительно переключающий браузер на HTTPS. Защищает от атак перехвата трафика.
Читать в глоссарии →Полное руководство по CSP: все директивы, nonce, hash, report-uri, strict-dynamic. Пошаговое внедрение, отладка, примеры для популярных фреймворков.
БезопасностьЧто такое хеш-функции, как работают MD5, SHA-1, SHA-256, SHA-512. Примеры использования, сравнение алгоритмов и онлайн-генератор хешей.
БезопасностьПолное руководство по настройке Brotli сжатия на веб-серверах: Nginx, Apache, сравнение с Gzip, уровни сжатия и проверка работы.
БезопасностьНастройка HTTP-кэширования: Cache-Control, ETag, Last-Modified, stale-while-revalidate. Стратегии для статики, HTML и API. Примеры для Nginx и Node.js.
Поделитесь с коллегами или изучите другие материалы блога
Cookies хранят сессии, токены и настройки. Неправильная конфигурация атрибутов делает их уязвимыми к перехвату, краже через XSS и CSRF-атакам. Атрибуты Secure, HttpOnly и SameSite значительно снижают эти риски.
Проверить настройку cookies вашего сайта можно с помощью Cookie Analyzer и Security Headers на rechecker.ru.
Cookie передаётся только по HTTPS. При HTTP-соединении браузер не отправляет cookie — защита от перехвата в незащищённых сетях.
Set-Cookie: session=abc123; Secure
Рекомендация: всегда использовать Secure для production.
Cookie недоступна из JavaScript. Защита от кражи сессии через XSS: скрипт не сможет прочитать document.cookie.
Set-Cookie: session=abc123; HttpOnly; Secure
Рекомендация: HttpOnly для сессионных и аутентификационных cookies.
Определяет, когда cookie отправляется при cross-site запросах.
| Значение | Описание |
|---|---|
| Strict | Только при запросах с того же сайта |
| Lax | При переходе по ссылке (top-level navigation) — да; при iframe/XHR с другого сайта — нет |
| None | При cross-site запросах тоже (требует Secure) |
Set-Cookie: session=abc123; SameSite=Strict; Secure; HttpOnly
По умолчанию в современных браузерах SameSite=Lax для cookies без явного атрибута.
Path=/ — cookie доступна для всех путейDomain=example.com — для домена и поддоменов (осторожно: поддомены получат доступ)Время жизни cookie. Max-Age в секундах предпочтительнее Expires.
Set-Cookie: session=abc123; Max-Age=3600; Secure; HttpOnly; SameSite=Strict
Secure; HttpOnly; SameSite=Strict; Path=/
Максимальная защита. При необходимости OAuth/SSO с редиректами — SameSite=Lax.
Secure; SameSite=Strict
Без HttpOnly: токен должен читаться JavaScript для отправки в форме.
Secure; SameSite=Lax; Path=/
Secure; SameSite=None
Обязательно с Secure при SameSite=None.
Злоумышленник внедряет скрипт, который читает document.cookie и отправляет сессию на свой сервер.
Защита: HttpOnly — cookie не доступна из JS.
При HTTP cookie передаётся в открытом виде.
Защита: Secure — передача только по HTTPS.
Запрос с другого сайта (форма, img) отправляется с cookie пользователя.
Защита: SameSite=Strict или Lax; дополнительно — CSRF-токен.
Злоумышленник подсовывает известный ему session ID.
Защита: смена session ID при логине; HttpOnly и Secure.
app.use(cookieSession({
name: 'session',
keys: ['secret-key'],
maxAge: 24 * 60 * 60 * 1000,
secure: true,
httpOnly: true,
sameSite: 'strict'
}));
setcookie('session', $sessionId, [
'expires' => time() + 3600,
'path' => '/',
'domain' => '',
'secure' => true,
'httponly' => true,
'samesite' => 'Strict'
]);
response.set_cookie(
'session',
value=session_id,
secure=True,
httponly=True,
samesite='Strict',
max_age=3600
)
Для установки атрибутов при проксировании:
proxy_cookie_path / "/; HTTPOnly; Secure; SameSite=Strict";
curl -I https://example.com
В заголовках Set-Cookie проверьте наличие Secure, HttpOnly, SameSite.
Онлайн: Cookie Analyzer — разбор всех cookies с рекомендациями по безопасности и GDPR.
| Атрибут | Поддержка |
|---|---|
| Secure | Все современные браузеры |
| HttpOnly | Все современные браузеры |
| SameSite | Chrome 51+, Firefox 60+, Safari 12.1+ |
SameSite=None требует Secure. Без Secure браузер может игнорировать cookie.
Юридические аспекты и согласие на cookies: Cookie и GDPR: как настроить согласие на cookies.