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

mil.ee

Сайт Сил обороны Эстонии

Сайт Сил обороны Эстонии — один замер на 11 страниц, 506 запросов, 12 узлов. Гигиена высокая: жёсткая политика безопасности контента, платформа согласия Cookiebot загружается первой и корректно блокирует настоящие счётчики — Google Analytics, Tag Manager, DoubleClick и пиксель Facebook разрешены в конфигурации, но без согласия не срабатывают. Утечка узкая и идёт мимо этой блокировки: встроенные ленты Facebook (картинки постов на главной) и YouTube (превью на странице срочной службы) подгружаются автоматически и отправляют адрес IP посетителя в Meta и Google в США, а reCAPTCHA и Google Fonts стартуют до согласия. Браузер при этом слал DNT: 1. Принципы защиты данных описывают Facebook и YouTube как внешние ссылки, по которым посетитель переходит сам, и обещают обработку адреса IP «только в обезличенном виде».

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

+0 мс · загрузка страницы
Отдача через Cloudflare. Заголовки безопасности жёсткие: строгая Content-Security-Policy (default-src 'self', script-src 'self' с точечным белым списком), HSTS, Referrer-Policy strict-origin-when-cross-origin, X-Frame-Options SAMEORIGIN, X-Content-Type-Options nosniff. Браузер отправлял DNT: 1.
+352 мс · reCAPTCHA и Cloudflare
www.google.com/recaptcha/enterprise.js и www.gstatic.com/recaptcha — reCAPTCHA Enterprise, передача в Google; static.cloudflareinsights.com/beacon.min.js — бескуковый аналитический маяк из разметки страницы. Оба до какого-либо решения о согласии; в декларации cookie помечены как необходимые.
+2948…+4216 мс · встроенная лента Facebook
scontent.ftll3-1.fna.fbcdn.net и scontent.ftll3-2.fna.fbcdn.net — картинки постов из встроенной ленты Facebook подгружаются автоматически. Адрес IP посетителя уходит в Meta (США). Пиксель Facebook и SDK connect.facebook.net при этом не загружаются — это прямые обращения за изображениями.
+752…+1211 мс · встроенная лента YouTube
www.googleapis.com/youtube/v3/playlistItems — запрос плейлиста, затем i.ytimg.com — превью роликов. Адрес IP уходит в Google (США). Плеер youtube.com не загружается — обращения идут за данными плейлиста и картинками.
по всему сеансу · Google Fonts
fonts.gstatic.com — веб-шрифты, подгружаются из стилей; адрес IP уходит в Google.

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

✓ Контролёр — Eesti Kaitsevägi; контакт по защите данных andmekaitse@mil.ee, mil@mil.ee, тел. 717 1155 — заявлен
✓ При посещении сайта автоматически собираются адрес IP, местоположение, время визита, тип браузера — для статистики посещаемости — заявлен
✓ «IP-aadresse ei seota teabega, mis võimaldab isikut tuvastada. Andmeid töötleme üksnes isikustamata kujul» — адреса IP не связываются с идентифицирующей информацией, обработка только в обезличенном виде — заявлен
✓ Используется Google Analytics (собирает адрес IP, число посетителей, источник, посещаемые страницы, время на сайте) — заявлен
✓ Facebook, Instagram, X используются по условиям их провайдеров; при переходе по ссылке на эти страницы данные собирает третья сторона, сведения о посещаемости — только в обезличенном виде — заявлен
✓ YouTube используется по условиям провайдера; при переходе по ссылке на канал данные собирает третья сторона, сведения — только в обезличенном виде — заявлен
✓ Spotify — по условиям провайдера, как канал по ссылке — заявлен
✓ Декларация cookie (Cookiebot) перечисляет: __cf_bm (Cloudflare, необходимая), rc::a (Google reCAPTCHA, необходимая), CookieConsent (Cookiebot), cookie YouTube, Google Analytics — заявлен
✓ Надзорный орган — Andmekaitse Inspektsioon — заявлен
+ Встроенность лент Facebook и YouTube: контент подгружается автоматически при заходе, а не только при переходе по ссылке, как описано в принципах защиты данных — не заявлен
+ Передача адреса IP посетителя в Meta (США) через картинки ленты Facebook и в Google (США) через ленту YouTube — не раскрыта и противоречит формулировке «только в обезличенном виде» — не заявлен
+ Google reCAPTCHA Enterprise — в принципах защиты данных не назван (есть лишь кука rc::a в декларации cookie); загружается до согласия и передаёт данные в Google — не заявлен
+ Cloudflare — в принципах защиты данных не назван; бескуковый аналитический маяк срабатывает до согласия — не заявлен
+ Google Fonts (fonts.gstatic.com) — не упомянут; адрес IP уходит в Google — не заявлен

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

+142…+350 мс consent.cookiebot.com

Cookiebot, первой на каждой странице, получает dnt=true.

+352 мс www.google.com / www.gstatic.com

reCAPTCHA Enterprise до согласия. В декларации cookie — необходимая (rc::a).

+352 мс static.cloudflareinsights.com

Бескуковый аналитический маяк из разметки, до согласия.

+2948…+4216 мс scontent.*.fna.fbcdn.net

Картинки встроенной ленты Facebook на главной. Адрес IP в Meta (США).

+752…+1211 мс www.googleapis.com / i.ytimg.com

API плейлиста и превью встроенной ленты YouTube на /ajateenistus/. Адрес IP в Google (США).

Без точного времени

весь замер Google Analytics, GTM, DoubleClick, пиксель FacebookРазрешены в CSP, но не сработали ни разу — согласие не дано.
весь замер fonts.gstatic.comGoogle Fonts, адрес IP в Google.

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

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

Контекст

mil.ee — официальный сайт Сил обороны Эстонии (Kaitsevägi). Ответственный обработчик — Eesti Kaitsevägi; контакт специалистов по защите данных andmekaitse@mil.ee, общий mil@mil.ee. Сайт отдаётся через Cloudflare и держит высокую планку безопасности на уровне заголовков: строгая Content-Security-Policy (default-src 'self', script-src 'self' с точечным белым списком доменов), HSTS, Referrer-Policy strict-origin-when-cross-origin, X-Frame-Options SAMEORIGIN, X-Content-Type-Options nosniff. Управление согласием — платформа Cookiebot.

Замер — одна запись на 11 страниц: главная, страница обработки персональных данных, страница cookie, общий раздел, уведомление о доступности, страница срочной службы /ajateenistus/. Всего 506 запросов, 12 узлов, около двенадцати минут, съёмка 6 сентября 2026 года. Обработку описывают принципы защиты данных Kaitsevägi (обновлены 08.01.2025) и автоматическая декларация cookie на движке Cookiebot.

Профиль по нынешним меркам чистый: настоящие счётчики закрыты, а состав внешних обращений короткий. Именно поэтому разбор сводится к нескольким узким точкам, а не к системному трекингу.

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

Google (reCAPTCHA, Fonts, YouTube), Meta (картинки ленты Facebook), Cloudflare (аналитический маяк). Настоящие счётчики — Google Analytics, Tag Manager, DoubleClick, пиксель Facebook — заблокированы до согласия и в этом замере не сработали.

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

Сайт сделан аккуратно, и это стоит зафиксировать прямо: платформа согласия Cookiebot загружается первой на каждой странице, а скриптовые трекеры — Google Analytics, Google Tag Manager, DoubleClick, пиксель Facebook — хоть и разрешены в политике безопасности контента, за весь замер не сработали ни разу. Согласие на статистику и маркетинг не давалось, и блокировка отработала. На этом фоне расхождения точечные.

Первое — встроенный контент обходит блокировку. Cookiebot блокирует сторонние скрипты, но не изображения. На главной странице автоматически подгружаются картинки постов из встроенной ленты Facebook (scontent.ftll3-1/2.fna.fbcdn.net) — адрес IP посетителя уходит в Meta в США. На странице срочной службы /ajateenistus/ работает встроенная лента YouTube: запрос к API плейлиста (www.googleapis.com/youtube/v3) и превью роликов (i.ytimg.com) — адрес IP уходит в Google в США. Ни пиксель Facebook, ни плеер youtube.com при этом не загружаются: это прямые обращения за изображениями и данными плейлиста, и именно потому они минуют скриптовую блокировку.

Второе — описание не соответствует механике. Принципы защиты данных описывают Facebook, Instagram, X и YouTube как внешние страницы, куда посетитель переходит по ссылке: данные собирает третья сторона, «если вы переходите по ссылке» на эти страницы. Но контент встроен в сами страницы сайта и подгружается при обычном заходе, без всякого перехода. Разница существенная: документ описывает действие, которое совершает пользователь, тогда как на деле передача происходит автоматически.

Третье — обещание обезличенности не покрывает передачу вовне. Документ прямо утверждает, что адреса IP не связываются с идентифицирующей информацией и обрабатываются только в обезличенном виде. Со стороны самого сайта это может быть и так, но адрес IP, отправленный в Meta и Google, для этих получателей обезличенным не является — это персональные данные, ушедшие стороннему получателю в США. Формулировка «только в обезличенном виде» такую передачу не описывает.

Четвёртое — два получателя не названы в самих принципах. Google reCAPTCHA Enterprise и Cloudflare в принципах защиты данных отсутствуют; они есть лишь в автоматической декларации cookie (rc::a, __cf_bm), где помечены как необходимые — различение человека и робота. Для средства защиты от ботов загрузка до согласия защитима, и как нарушение сама по себе она здесь не фиксируется. Но reCAPTCHA Enterprise на +352 мс передаёт данные в Google, а посетитель об этом получателе из принципов защиты данных не узнаёт.

Отдельно: документ заявляет использование Google Analytics, тогда как в этом замере счётчик как раз корректно заблокирован до согласия. Это не расхождение в минус — скорее документ описывает состояние «с согласием», а замер снят без него.

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

Доказано: настоящие счётчики заблокированы. За 11 страниц и 506 запросов не встречается ни одного обращения к google-analytics.com, googletagmanager.com, doubleclick.net или к пикселю connect.facebook.net — при том что все они разрешены в политике безопасности контента. Платформа Cookiebot загружается первой и гейтит их при отсутствии согласия.

Доказано: встроенный контент грузится без согласия. Картинки ленты Facebook уходят на +2948…+4216 мс на главной, лента YouTube — на +752…+1211 мс на странице срочной службы. Никакого условия согласия перед этими обращениями нет; блокировка на изображения не распространяется.

Доказано: браузер сигнализировал об отказе от отслеживания. Заголовок DNT: 1 присутствует в 331 запросе, платформа Cookiebot получала параметр dnt=true. На состав встроенного контента это не повлияло.

Не доказано и не утверждается: работа настоящих счётчиков. Как Google Analytics и родственные скрипты ведут себя при данном согласии, замер показать не может — они не загрузились. Вывод касается только того контента, что фактически подгрузился.

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

Замер охватывает 11 страниц сайта и фиксирует поведение браузера, не внутреннюю кухню сервисов: обработка на стороне серверов и договоры с получателями браузерным замером не проверяются. В записи присутствует одно обращение к www.kv.ee (страница ценовой статистики) — это остаточная вкладка от предыдущего замера в том же браузере, к mil.ee она отношения не имеет и в разбор не входит. Идентификация сервисов опирается на домены и схему адресов: Google — по google.com/recaptcha, gstatic, googleapis/youtube и fonts.gstatic.com; Meta — по fbcdn.net; Cloudflare — по cloudflareinsights.com. Отнесение reCAPTCHA и Cloudflare к необходимым взято из самой декларации cookie сайта.

Файл опубликован очищенным от личных данных: удалены значения куки в запросах (в записи заголовки Cookie отсутствуют полностью, поэтому состояние согласия устанавливается не по кукам, а по факту блокировки скриптовых трекеров). Тела ответов и разметка сохранены, поэтому порядок загрузки, инициаторы и параметры обращений проверяются по опубликованному файлу напрямую.

Правовую оценку выносит компетентный орган — Andmekaitse Inspektsioon, к которому сами принципы защиты данных и отсылают.

Вывод

Сайт Сил обороны выстроен аккуратно: жёсткая политика безопасности контента, платформа согласия Cookiebot загружается первой и действительно блокирует настоящие счётчики — Google Analytics, Tag Manager, DoubleClick и пиксель Facebook при отсутствии согласия не срабатывают. Проблема не в них, а в стороннем контенте, который встроен как изображения и потому минует скриптовую блокировку: встроенная лента Facebook на главной и лента YouTube на странице срочной службы подгружаются автоматически и отправляют адрес IP посетителя в Meta и Google в США. reCAPTCHA и Google Fonts стартуют до согласия, браузерный DNT: 1 игнорируется.

При этом принципы защиты данных описывают Facebook и YouTube как внешние страницы, куда посетитель переходит по ссылке сам, и обещают обработку адреса IP «только в обезличенном виде» — тогда как встроенный контент передаёт этот адрес вовне при обычном заходе, без перехода. Google reCAPTCHA и Cloudflare в самих принципах не названы. Для государственного сайта, где посетитель страницы срочной службы вправе рассчитывать на сдержанность, эти точки существеннее, чем их короткий список.

Устранение: обусловить загрузку встроенных лент Facebook и YouTube согласием (например, через фасад-заглушку, подгружающую контент только по клику), чтобы адрес IP не уходил в Meta и Google до согласия; привести принципы защиты данных в соответствие с механикой — описать Facebook и YouTube как встроенный контент, а не как ссылки, и раскрыть передачу адреса IP этим получателям в США; назвать в принципах защиты данных Google reCAPTCHA и Cloudflare; рассмотреть самостоятельный хостинг шрифтов вместо fonts.gstatic.com, чтобы адрес IP не уходил в Google.

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

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

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