Главная » Ошибки Битрикс » Secure Cookie в Битрикс: как включить флаг Secure для PHPSESSID и других cookies

Secure Cookie в Битрикс: как включить флаг Secure для PHPSESSID и других cookies

При проведении аудита безопасности сайта на 1С-Битрикс нередко встречается замечание об отсутствии атрибута Secure у сессионных cookies. Такая проблема может быть обнаружена автоматическими сканерами безопасности, пентестерами или средствами анализа веб-приложений. В данной статье разберем, что такое Secure Cookie, почему отсутствие этого атрибута считается уязвимостью и как правильно настроить его в Битрикс.

Что такое атрибут Secure

Атрибут Secure указывает браузеру, что cookie должна передаваться только по защищенному протоколу HTTPS. Без данного атрибута браузер может отправить cookie и по обычному HTTP-соединению, что создает риск перехвата данных злоумышленником при атаке типа Man-in-the-Middle (MITM). Пример небезопасной cookie:
Set-Cookie: PHPSESSID=abcdef123456; path=/
Пример безопасной cookie:
Set-Cookie: PHPSESSID=abcdef123456; path=/; Secure; HttpOnly; SameSite=Lax

Почему это считается уязвимостью

Если сессионная cookie передается без флага Secure, злоумышленник может попытаться перехватить идентификатор сессии пользователя и получить доступ к его учетной записи. Подобные замечания часто встречаются в отчетах:
  • Acunetix
  • Burp Suite
  • Nessus
  • Pentest Tools
  • Positive Technologies MaxPatrol
Особенно критично это для административной панели Битрикс и личных кабинетов пользователей.

Нужна помощь с Битрикс?





    Проверить ответ сервера можно через curl:
    curl -k -I https://example.ru/
    Если в ответе присутствует строка:
    Set-Cookie: PHPSESSID=...
    и отсутствует атрибут Secure, настройку необходимо исправить. Откройте административную часть сайта:
    1. Настройки
    2. Настройки продукта
    3. Настройки модулей
    4. Главный модуль
    В разделе настроек безопасности включите использование защищенных cookies. После сохранения настроек новые сессии будут создаваться с флагом Secure.

    Настройка через php.ini

    Если требуется включить защиту на уровне PHP, добавьте следующие параметры:
    session.cookie_secure = On
    session.cookie_httponly = On
    session.cookie_samesite = Lax
    После изменения конфигурации необходимо перезапустить PHP-FPM или веб-сервер.

    Настройка через .settings.php

    Для современных версий Битрикс можно указать параметры сессий в файле настройки:
    <?php
    
    'session' => [
        'value' => [
            'mode' => 'default',
            'handlers' => [
                'general' => [
                    'type' => 'native',
                    'options' => [
                        'cookie_secure' => true,
                        'cookie_httponly' => true,
                        'cookie_samesite' => 'Lax',
                    ],
                ],
            ],
        ],
    ],

    Обязательный редирект на HTTPS

    Перед включением Secure Cookie необходимо убедиться, что весь сайт работает исключительно по HTTPS. Для nginx можно использовать следующий редирект:
    server {
        listen 80;
        server_name example.ru www.example.ru;
        return 301 https://$host$request_uri;
    }
    Если сайт доступен одновременно по HTTP и HTTPS, после включения Secure могут возникнуть проблемы с авторизацией пользователей.

    Дополнительные меры защиты

    Помимо Secure рекомендуется использовать:
    • HttpOnly для защиты от XSS;
    • SameSite=Lax или SameSite=Strict;
    • обязательный HTTPS для всех страниц сайта;
    • актуальную версию Битрикс и PHP.

    Заключение

    Отсутствие атрибута Secure у cookies в Битрикс является распространенным замечанием при проведении аудита безопасности. Исправление обычно сводится к включению защищенных cookies, настройке HTTPS и установке дополнительных параметров безопасности для сессий. После внедрения настроек рекомендуется повторно проверить заголовки Set-Cookie через браузер или curl и убедиться, что для всех сессионных cookies присутствует атрибут Secure.
    Нужна помощь с Битрикс?

    Исправим ошибку, доработаем сайт, ускорим Битрикс или поможем разобраться с проблемой.

    Услуги
    Инструменты
    База знаний