Настройка атрибутов cookie RUM

Материал из Документация Ключ-АСТРОМ

Настройка атрибутов cookie RUM

Система Мониторинга реальных пользователей Ключ-АСТРОМ использует набор HTTP-cookie; см. раздел «Файлы cookie и клиентское хранилище для RUM и воспроизведения сессий». Вы можете настроить некоторые атрибуты cookie.

Чтобы получить доступ к этим параметрам:

  1. Перейдите в раздел Ключевые показатели опыта > Обзор.
  2. Выберите Веб, чтобы просмотреть все веб-интерфейсы.
  3. Выберите интерфейс, который хотите настроить.
  4. На вкладке Настройки выберите Открыть в настройках.
  5. Перейдите в раздел Сбор и захват данных > Инструментарий > Cookies.

В следующих разделах описаны доступные настройки.

Настройка атрибутов cookie, относящихся к защите данных

Если политика безопасности вашей компании требует наличия атрибутов Secure и SameSite у cookie, вам необходимо настроить RUM для их установки, поскольку по умолчанию они не заданы.

RUM Ключ-АСТРОМ не поддерживает атрибут HttpOnly. Поскольку HttpOnly cookie недоступны для JavaScript, JavaScript RUM не может их читать или изменять. Убедитесь, что ваша инфраструктура не добавляет атрибут HttpOnly, так как это нарушит работу мониторинга.

Установка атрибута Secure

Атрибут Secure cookie гарантирует, что браузеры отправляют cookie только по защищенным соединениям.

Прежде чем включать атрибут Secure, убедитесь, что ваше приложение работает исключительно через защищенные соединения. В противном случае вы потеряете возможность отслеживать незашифрованную HTTP-коммуникацию.

Чтобы задать атрибут Secure cookie, включите параметр Cookie > Use the Secure cookie attribute for cookies set by Ключ-АСТРОМ.

Установка атрибута SameSite

Атрибут SameSite cookie определяет, отправляет ли браузер cookie с межсайтовыми запросами. Подробное объяснение этого атрибута и его значений см. в разделе «Объяснение SameSite cookies».

Чтобы задать атрибут SameSite cookie, перейдите в раздел Cookie > SameSite cookie attribute и выберите одно из значений: None, Lax или Strict.

Настройка атрибута Domain

Атрибуты Domain и Path cookie определяют область действия cookie. Эта область действия определяет, отправляют ли браузеры cookie с запросом и может ли клиентский JavaScript получить к нему доступ для данного URL-адреса.

Ключ-АСТРОМ всегда устанавливает атрибут Path для RUM-cookie в значение /, поэтому область действия cookie охватывает все URL-адреса в пределах домена. Этот атрибут Path нельзя настроить.

По умолчанию атрибут Domain определяется автоматически, но вы также можете настроить его вручную для каждого интерфейса.

В следующих разделах объясняется, как Ключ-АСТРОМ определяет домен cookie по умолчанию и когда может потребоваться его ручная настройка.

Домен cookie по умолчанию

По умолчанию Ключ-АСТРОМ автоматически определяет домен cookie, выбирая эффективный домен верхнего уровня плюс один (eTLD+1) из URL-адреса запроса. Например, Ключ-АСТРОМ выбирает домен example.com для www.example.com и example.co.uk для www.example.co.uk. Это позволяет Ключ-АСТРОМ фиксировать непрерывную сессию, даже когда пользователи перемещаются между поддоменами при взаимодействии с вашими интерфейсами, например, с www.example.com на shop.example.com.

Домен cookie определяется либо на стороне сервера с помощью ЕдиногоАгента, либо на стороне клиента с помощью JavaScript RUM.

  • Если JavaScript RUM внедряется автоматически, ЕдиныйАгент обычно определяет домен cookie, используя результат определения имени хоста в качестве отправной точки. Если неинструментированный компонент перезаписывает часть URL, относящуюся к хосту, убедитесь, что определение имени хоста настроено правильно.
  • При использовании RUM без агентов домен cookie определяется JavaScript RUM.

Настройка домена cookie вручную

В большинстве случаев ручная настройка домена cookie не требуется. Однако ручная настройка полезна в следующих случаях:

  • Необходимо разделить действия пользователей из разных поддоменов на отдельные пользовательские сессии.
  • Автоматическое определение домена cookie не работает, поскольку неинструментированный компонент перезаписывает часть URL-адреса, относящуюся к хосту, и не передает исходную информацию о хосте в заголовке запроса. Предпочтительное решение — настроить компонент для добавления такого заголовка; см. раздел «Настройка определения имени хоста». Ручная настройка домена cookie также является возможным обходным путем.

Чтобы настроить домен для размещения cookie, перейдите в раздел Cookie > Domain to be used for cookie placement и введите необходимый домен.

Распространенные ошибки и ограничения ручной настройки

Указанный домен cookie представляет собой публичный суффикс

Браузеры не позволяют устанавливать cookie с атрибутом Domain, выходящим за рамки одной организации. Поэтому установка домена cookie в виде общедоступного суффикса не работает.

В настроенный интерфейс отображаются несколько доменов без общего eTLD+1

Поскольку домен cookie настраивается для каждого интерфейса отдельно, все домены, которые отображаются на ваш интерфейс, должны иметь как минимум общий eTLD+1.

Например, вы не можете вручную настроить домен cookie для внешнего интерфейса, где отображаются оба www.example.com и www.example.co.uk. Если вы выберете домен cookie example.com, браузер отклонит RUM-cookie при запросах к www.example.co.uk.

Вложенные домены cookie

Если вы вручную настраиваете домен cookie для всех или некоторых ваших интерфейсов, необходимо убедиться, что домены cookie ваших интерфейсов не вложены друг в друга.

Рассмотрим следующий пример. Домен www.example.com сопоставлен с интерфейсом Example, а домен shop.example.com — с интерфейсом Shop. По умолчанию домен cookie example.com определяется автоматически для обоих интерфейсов. Если вы вручную установите домен cookie для Shop как shop.example.com, и пользователи будут переключаться между двумя интерфейсами, могут возникнуть неоднозначные ситуации. Файлы cookie RUM для Example используют домен cookie example.com и, следовательно, также применяются к Shop, у которого есть свой собственный набор cookie RUM с доменом shop.example.com. При такой конфигурации Ключ-АСТРОМ может случайным образом разбивать захваченные данные RUM на короткие пользовательские сессии. В RUM Classic действия пользователей и распределенные трассировки могут быть связаны не так, как ожидалось.