Безопасные cookie
пошаговая инструкция · Около часа
1. Что произошло
Файлы cookie без защитных флагов могут быть перехвачены или прочитаны скриптом.
2. Почему это важно
Риск кражи сессии посетителя или администратора. После исправления: Сессии пользователей станут безопаснее.
3. На каких страницах обнаружено
Заголовки Set-Cookie главной страницы: флаги Secure, HttpOnly и SameSite.
Чтобы увидеть адреса на вашем сайте, откройте инструкцию из отчёта или добавьте домен в адрес: /fix/cookies/ваш-сайт.ru.
4. Как исправить
Шаги
- Для сессионных cookie включите три флага: Secure (только по https), HttpOnly (недоступны скриптам) и SameSite=Lax.
- В PHP это делается настройками session.cookie_*; для cookie, которые создаёт ваш код, — параметрами setcookie().
- Cookie аналитики и сторонних виджетов вы не контролируете — на них внимание не обращайте.
WordPress
- WordPress ставит HttpOnly сам. Secure включается автоматически на https; если нет — убедитесь, что is_ssl() возвращает true за прокси (см. код про X-Forwarded-Proto).
phpBB
- В админке «Общие → Конфигурация сервера → Настройки куки» включите «Безопасные куки» (при https).
1С-Битрикс
- Параметры сессии задаются в php.ini или .htaccess (php_value session.cookie_secure 1); также в /bitrix/.settings.php секция session.
5. Готовый код
Замените example.com на свой домен. Перед правкой конфигурации сделайте резервную копию файла.
Любой сайт
php.ini / .user.ini
session.cookie_secure = 1
session.cookie_httponly = 1
session.cookie_samesite = LaxPHP: свои cookie
setcookie('token', $value, [
'expires' => time() + 86400,
'path' => '/',
'secure' => true,
'httponly' => true,
'samesite' => 'Lax',
]);WordPress
WordPress за прокси/CDN (wp-config.php)
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}6. Как проверить результат
- В каждой строке Set-Cookie должны быть Secure; HttpOnly; SameSite.
- Нажмите «Перепроверить сайт».
Флаги cookie
curl -sI https://example.com/ | grep -i set-cookieЧтобы перепроверить сайт, откройте отчёт и нажмите «Проверить заново».