Технический аудит · 08.09.2026

airport.ee

Сайт Таллиннского аэропорта

Сайт Таллиннского аэропорта — один замер страницы с информацией о рейсах, 42 запроса, 9 узлов, около секунды. Платформа управления согласием Complianz на странице есть и работает в режиме opt-in: баннер показан, категории «Статистика» и «Маркетинг» выключены. Тем не менее при загрузке, без согласия, GA4 отправляет page_view и scroll (причём со статусом gcs=- — режим согласия не настроен), а пиксель Facebook / Meta — PageView в Meta. Блокировщик Complianz эти трекеры не удерживает; браузерная защита от отслеживания лишь заблокировала им доступ к хранилищу, но обращения к Google и Meta состоялись. Заголовки безопасности выставлены частично.

Хронология обращений

+0 мс · загрузка страницы рейсов
Сайт на WordPress, отдача через Cloudflare. Заголовки безопасности выставлены частично: HSTS, X-Frame-Options SAMEORIGIN, X-Content-Type-Options nosniff есть; Content-Security-Policy, Referrer-Policy и Permissions-Policy отсутствуют. Подгружается платформа согласия Complianz (cookieblocker.min.js, баннер banner-1-optin.css).
+389 мс · Cloudflare Web Analytics
static.cloudflareinsights.com/beacon.min.js — аналитический маяк из разметки страницы.
+416…+450 мс · контейнер тегов
www.googletagmanager.com/gtm.js и gtag/js — Google Tag Manager, из которого стартуют аналитика и пиксель.
+538…+544 мс · GA4
region1.analytics.google.com — обращение measurement/conversion, затем два g/collect: page_view и scroll, счётчик G-KTS3XHH4LF, gcs=-. Адрес и заголовок страницы уходят в Google.
+644…+940 мс · Facebook / Meta Pixel
connect.facebook.net/fbevents.js и signals/config/1114129963…, затем www.facebook.com/tr на +940 мс — событие PageView пикселя 1114129963021443, ответ 200, с идентификатором браузера fbp.

Декларация против факта

✓ Контролёр — AS Tallinna Lennujaam (Таллиннский аэропорт); политика конфиденциальности (Privaatsuspoliitika) — заявлен
✓ В политике названы Google (Analytics) и Meta — заявлен
✓ Управление согласием — платформа Complianz (баннер с категориями «Функциональность», «Статистика», «Маркетинг», режим opt-in) — заявлен
✓ Платёжные компоненты — Maksekeskus и Apple Pay — заявлен
✓ Надзорный орган — Andmekaitse Inspektsioon — заявлен
+ Cloudflare Web Analytics — аналитический маяк, в политике не назван — не заявлен
+ Платформа согласия Complianz — в политике отдельно не описана — не заявлен
+ То, что GA4 и пиксель Facebook срабатывают при показанном баннере opt-in с выключенными категориями — то есть не обусловлены согласием — не заявлен
+ То, что GA4 идёт без сигнала согласия (gcs=-) — не заявлен

Тайминги передачи

+389 мс static.cloudflareinsights.com

Аналитический маяк из разметки. В политике не назван.

+543 мс region1.analytics.google.com

GA4 page_view, G-KTS3XHH4LF, gcs=- (режим согласия не настроен).

+544 мс region1.analytics.google.com

GA4 scroll, тот же счётчик.

+940 мс www.facebook.com

PageView, пиксель 1114129963021443, GET /tr, ответ 200, идентификатор fbp. Баннер показан, маркетинг выключен.

Зафиксированные трекеры

Признаки несоответствия GDPR

Контекст

airport.ee — сайт Таллиннского аэропорта; ответственный обработчик — AS Tallinna Lennujaam. Сайт построен на WordPress и отдаётся через Cloudflare. Управление согласием реализовано плагином Complianz в режиме opt-in. Заголовки безопасности выставлены частично: есть HSTS, X-Frame-Options SAMEORIGIN и X-Content-Type-Options nosniff; Content-Security-Policy, Referrer-Policy и Permissions-Policy отсутствуют.

Замер — одна запись страницы с информацией о рейсах (/lennuinfo/): 42 запроса, 9 узлов, около секунды, съёмка 8 сентября 2026 года.

Кому уходят данные напрямую

Google (Analytics), Meta (Facebook Pixel), Cloudflare (аналитический маяк) — все до согласия. Функционально — платёжные компоненты Maksekeskus и Apple Pay.

Заявленное против фактического

Расхождение здесь наглядное: на странице показан баннер согласия, а трекеры этот баннер игнорируют.

Первое — согласие показывают, но не спрашивают по существу. Платформа Complianz работает в режиме opt-in: на странице загружается её блокировщик cookieblocker.min.js и баннер banner-1-optin.css, в котором категории «Статистика» и «Маркетинг» по умолчанию выключены. Логика opt-in означает, что до включения этих категорий соответствующие обращения уходить не должны. Фактически они уходят при загрузке страницы: аналитика Google (G-KTS3XHH4LF) отправляет page_view и scroll, а также обращение конверсий, а пиксель Facebook / Meta (1114129963021443) — PageView в Meta. Всё это до того, как в баннере что-либо включено или нажато.

Второе — аналитика идёт без сигнала согласия. GA4 отправляет свои события со статусом gcs=- — то есть режим согласия Google на сайте вообще не сконфигурирован. Для сайта, показывающего баннер управляемого согласия, это внутреннее противоречие: интерфейс предлагает управлять статистикой и маркетингом, а счётчик передаёт данные без какого-либо сигнала согласия.

Третье — блокировщик эти трекеры не удерживает. Собственная защита браузера от отслеживания отметила обращения GA4 и пикселя Facebook и заблокировала им доступ к хранилищу — но сами обращения к Google и Meta состоялись. То есть трекеры выстреливают вне зависимости и от выбора в баннере, и от блокировщика Complianz; удержала их лишь встроенная защита браузера, а не сам сайт.

Четвёртое — часть получателей не раскрыта. Политика конфиденциальности называет Google (Analytics) и Meta. Но аналитический маяк Cloudflare и сама платформа Complianz в ней не упомянуты.

Согласие: что доказано и что нет

Доказано: баннер согласия показан, категории выключены. Платформа Complianz в режиме opt-in выводит баннер с выключенными по умолчанию «Статистикой» и «Маркетингом»; выбор в нём на момент передач не сделан.

Доказано: трекеры передают данные до согласия. GA4 page_view и scroll уходят на +543…+544 мс, пиксель Facebook PageView — на +940 мс (ответ 200). Все при показанном баннере с невключёнными категориями.

Доказано: аналитика идёт без режима согласия. Все обращения GA4 несут gcs=- — сигнал согласия Google отсутствует.

Доказано: удержала браузерная защита, а не сайт. В сеансе обращения GA4 и пикселя Facebook помечены встроенной защитой браузера как отслеживающие, с блокировкой доступа к хранилищу; тем не менее сетевые обращения к Google и Meta состоялись.

Границы наблюдения

Замер охватывает одну страницу — информацию о рейсах — и фиксирует поведение браузера, не внутреннюю кухню сервисов: серверная обработка, настройка контейнера тегов и договоры с получателями браузерным замером не проверяются. Значения куки в запросах удалены при очистке (заголовки Cookie в файле отсутствуют), поэтому состояние согласия установлено не по кукам, а по сочетанию признаков: показанный баннер opt-in с выключенными категориями, статус gcs=- у GA4 и фактическая доставка обращений GA4 и пикселя Facebook. Платёжные компоненты Maksekeskus и Apple Pay отнесены к функциональной части.

Файл опубликован очищенным от личных данных. Заголовки ответов, статусы, порядок загрузки и инициаторы сохранены, поэтому состав обращений, статус gcs=- и доставка пикселя Facebook проверяются по опубликованному файлу напрямую.

Правовую оценку выносит компетентный орган — Andmekaitse Inspektsioon.

Вывод

Сайт Таллиннского аэропорта показывает баннер управляемого согласия Complianz в режиме opt-in — с выключенными по умолчанию статистикой и маркетингом, — но статистические и рекламные обращения этот баннер обходят. При загрузке страницы, до включения категорий и до какого-либо выбора, аналитика Google отправляет page_view и scroll (причём вовсе без сигнала согласия, gcs=-), а пиксель Facebook / Meta — PageView в Meta. Блокировщик Complianz эти трекеры не удерживает; их доступ к хранилищу отсекла лишь встроенная защита браузера, но сетевые обращения к Google и Meta всё равно состоялись.

Политика конфиденциальности называет Google и Meta, но аналитический маяк Cloudflare и саму платформу согласия не упоминает. Показанный интерфейс согласия для аналитики и пикселя оказывается декоративным: они не подключены к нему и передают данные независимо от выбора пользователя.

Устранение: подключить GA4, пиксель Facebook и маяк Cloudflare к платформе согласия так, чтобы до включения категорий «Статистика» и «Маркетинг» ни одно из этих обращений не уходило; настроить режим согласия Google (сейчас gcs=-), чтобы состояние согласия передавалось в GA4; назвать в политике конфиденциальности аналитику Cloudflare и платформу Complianz; дополнить набор защитных заголовков — Content-Security-Policy, Referrer-Policy и Permissions-Policy.

Доказательство

Как проверить: скачайте файл и посчитайте его контрольную сумму — sha256sum файл.har (Linux, macOS) или certutil -hashfile файл.har SHA256 (Windows); она должна совпасть с указанной. Вывод разбора относится к объёму этого замера — см. ограничения методики.

Оригинал (разбор)
HAR-файл: ee/airport-ee-2026-09-08.har
SHA-256: f03f9200fa57c65dda77d9a8c41c05188583ca0512105a19fa5f563fef7afa6b
Контрольный снимок
Ждём изменений
HAR-файлы хранятся в EU-инфраструктуре (Proton Drive). SHA-256 публикуется для проверки целостности.