{"schema_version":"1.0","service":"Publicasta","type":"article","id":343,"slug":"cloudflare_web_analytics_rum_edge_defaults_governance","title":"Спор вокруг Cloudflare Web Analytics: когда настройки CDN становятся изменениями в production","excerpt":"История с RUM в Cloudflare показывает, почему настройки edge-провайдера нужно проверять как релиз приложения.","language":"ru","default_language":"en","canonical_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance?lang=ru","image":{"url":"https://publicasta.com/storage/projects/17/pages/343/2026/08/b94fcc9f-2caf-4787-b702-af6b19ae2ad1.webp","alt":"Схема: HTML от origin проходит через edge proxy, где перед браузером добавляется небольшой RUM beacon"},"publisher":{"id":17,"slug":"it_today_news","name":"ИТ сегодня","url":"https://publicasta.com/it_today_news"},"author":{"name":"Anton R"},"published_at":"2026-08-17T13:42:06+00:00","updated_at":"2026-08-17T13:42:06+00:00","content_markdown":"Обсуждение на Hacker News 16 августа превратило небольшую настройку Cloudflare в хороший урок для эксплуатационных команд. Владелец сайта ожидал страницу без JavaScript, перевёл домен в инфраструктуру Cloudflare и увидел в доставленном HTML скрипт `static.cloudflareinsights.com/beacon.min.js` с атрибутом `data-cf-beacon`. Заголовок треда связывал эффект с переключением nameservers, но техническая граница важнее: один только DNS не переписывает HTML. Инъекция возможна там, где hostname проксируется через Cloudflare и ответ проходит через edge.\n\n ![Схема: HTML от origin проходит через edge proxy, где перед браузером добавляется небольшой RUM beacon](https://publicasta.com/storage/projects/17/pages/343/2026/08/b94fcc9f-2caf-4787-b702-af6b19ae2ad1.webp)\n\n ## Что произошло\n\n Публичным сигналом стал тред Hacker News “Tell HN: Cloudflare silently injects its analytics when you switch nameservers”: при проверке у него были сотни голосов и более сотни комментариев. Но форум — не источник истины о поведении продукта, поэтому опираться нужно на документы Cloudflare. В документации Web Analytics и Observatory RUM описан JavaScript beacon, который для проксируемых сайтов может добавляться автоматически. В посте от 17 сентября 2025 года Cloudflare объявила, что с 15 октября 2025 года Web Analytics будет включаться по умолчанию для free domains, с исключением трафика из EU и UK. В текущих инструкциях также указано, что автоматическую установку можно отключить или заменить ручной вставкой snippet.\n\n Именно это сочетание вызвало раздражение. Для Cloudflare это privacy-first измерение реального пользовательского опыта. Для части операторов — изменение production-ответа сторонним поставщиком без деплоя из origin. Оба взгляда могут быть правдивыми одновременно: beacon может быть документированным и полезным, но сам факт добавления скрипта на edge меняет ожидания владельца сервиса.\n\n ## DNS-only и proxied — разные режимы\n\n Здесь нельзя говорить, будто DNS сам добавляет код. DNS-only запись только разрешает имя и не ставит Cloudflare в HTTPS-путь между браузером и origin. Проксируемая запись работает иначе: запрос идёт через reverse proxy Cloudflare, edge может применять WAF, кэширование, сжатие, observability, bot checks и другие продукты, а затем отдаёт изменённый или неизменённый ответ пользователю.\n\n Для небольших команд эта разница часто выглядит как оранжевое или серое облако в панели, но архитектурно это разные договорённости. Для R2 custom domains, Pages, обычных origins и subdomains вопрос один: кто находится в пути ответа и какие функции включены для конкретного hostname. Если провайдер может менять headers, сжимать контент, показывать challenge, добавлять beacon или переписывать HTML, он уже часть runtime приложения.\n\n ## Что такое Web Analytics и RUM\n\n Cloudflare Web Analytics позиционируется как приватное измерение производительности сайта. RUM beacon собирает данные из браузерных performance APIs: navigation timing, resource timing, paint timing, Core Web Vitals, включая LCP, CLS, TTFB и INP, а также связанные метрики загрузки страницы. Документация Cloudflare указывает `https://static.cloudflareinsights.com/beacon.min.js` как источник beacon и `/cdn-cgi/rum` как endpoint для проксируемых сайтов.\n\n Важная оговорка: в документации сказано, что beacon не обращается к cookies, `localStorage`, `sessionStorage`, IP address или `IndexedDB`, а исходный IP, полученный при обычной HTTP-обработке, отбрасывается в ближайшем дата-центре Cloudflare и не сохраняется в основных аналитических базах. Поэтому корректнее не называть историю cookie-трекингом или вредоносной программой. Проблема в другом: инфраструктурная настройка изменила страницу, которую получил браузер.\n\n ## Почему операторы недовольны\n\n Недовольство не сводится к размеру скрипта. Есть сайты, которые специально обещают отсутствие JavaScript. Есть государственные, медицинские, финансовые, образовательные и общественные проекты, где ведётся реестр сторонних скриптов. Есть организации, где privacy notice, DPIA, vendor review, CSP, SRI, consent banner и security testing обновляются до появления нового браузерного кода в production. Даже без cookies такой beacon касается этих процессов.\n\n Есть и вопрос доверия. Origin отправил одну последовательность байтов, браузер получил другую. Для команд, которые строят воспроизводимые деплои, жёсткий CSP, контроль supply chain или доказательства соответствия требованиям, edge mutation не мелкая деталь. Если команда узнаёт об этом не из change ticket, а из жалобы пользователя или обсуждения на форуме, процесс уже дал сбой.\n\n ## Почему это не повод для паники\n\n Нужно избегать драматизации. Cloudflare — крупный инфраструктурный поставщик, Web Analytics — официальный продукт, а автоматическая вставка описана в документации. Назначение beacon — telemetry производительности, а не кража паролей или чтение browser storage. Если назвать любой добавленный скрипт атакой, разговор станет менее точным.\n\n Правильная рамка — авторизация и управление изменениями. Скрипт может быть безопасным, но неразрешённым для конкретного сайта. Default может быть полезным, но слишком широким для регулируемого трафика. Провайдер может уважать приватность и всё равно создавать работу для compliance. Зрелая команда должна уметь сказать: на marketing pages это допустимо, в authenticated app — нет, на документации — только после ticket и проверки.\n\n ## Governance issue\n\n Главный урок шире Cloudflare. Edge platforms давно перестали быть пассивными трубами. CDN, WAF, bot management, Workers, analytics, image optimization, email obfuscation, security challenges и performance products стоят между origin и пользователем. Их defaults могут менять байты, headers, JavaScript execution, caching behavior, timing, telemetry и error handling. Это поверхность software supply chain.\n\n Поэтому dashboard changes должны иметь владельца. Бесплатные defaults стоит проверять не менее внимательно, чем enterprise-функции. Анонсы поставщика нужно мапить на zones и hostnames. Любая автоматическая трансформация, которая меняет response body, должна попадать в change management, особенно если сайт регулируемый, приватный, без JavaScript или публично обещает определённое поведение.\n\n ## Чек-лист аудита\n\n Начните с diff. Получите одну и ту же страницу напрямую с origin и через публичный hostname, сравните HTML, headers и список scripts. Ищите `static.cloudflareinsights.com`, `data-cf-beacon`, `/cdn-cgi/rum`, bot-management scripts, email-decode snippets, Rocket Loader, Zaraz tags, challenge scripts, transformed image URLs и неожиданные reporting endpoints. Проверяйте не только homepage, но и subdomains.\n\n Посмотрите Web Analytics, Observatory, Speed, Zaraz, Rules, Transform Rules, Page Rules, Workers routes, Snippets, Bot Management, WAF managed challenges и cache settings. Цель не в том, чтобы объявить все функции плохими. Цель — знать, какие из них меняют browser-visible response и кто разрешил их для production.\n\n Используйте CSP осознанно. Руководство MDN по Content Security Policy объясняет, как ограничить источники scripts и других ресурсов. Жёсткий `script-src` может заблокировать неожиданный beacon, а `Content-Security-Policy-Report-Only` покажет эффект до enforcement. Но CSP не заменяет исправление конфигурации: блокировка vendor-inserted script может дать шум в reports и потерю аналитики, если команда не отключила ненужную функцию.\n\n Проверьте `Cache-Control: public, no-transform` там, где это подходит. FAQ Cloudflare говорит, что при таком header proxy не сможет изменить original payload, поэтому beacon не будет автоматически добавлен. Но это не универсальная кнопка: `no-transform` может отключить полезные оптимизации и другие изменения, поэтому его нужно тестировать на типовых страницах.\n\n ## Чек-лист миграции\n\n До перевода домена решите для каждого hostname, нужен DNS-only или proxied mode. Если нужны CDN cache и WAF, proxy может быть правильным. Если важно сохранить точные байты origin, лучше выбрать DNS-only или другую архитектуру. Нельзя отдавать это решение wizard-у или миграционному чекбоксу без владельца.\n\n После включения proxy проведите аудит из браузера и командной строки: delivered HTML, response headers, CSP reports, performance beacons, source maps, service workers, third-party scripts и requests к endpoint-ам провайдера. Тестируйте из разных регионов, если vendor документирует исключения для EU/UK traffic. Юридические выводы пусть делает counsel или compliance, но техническая команда должна предоставить им факты.\n\n ## Вывод\n\n Спор повторится с другими провайдерами и другими defaults. Чем полезнее edge-платформа, тем меньше она похожа на нейтральную трубу. Observability важна, но она должна быть явной, проверяемой и обратимой. Практическое правило простое: если настройка может изменить то, что получает браузер, она должна проходить тот же контроль, что и изменение кода.","available_translations":[{"language":"ar","title":"جدل Cloudflare Web Analytics: عندما تتحول إعدادات CDN الافتراضية إلى تغيير في الإنتاج","html_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance?lang=ar","markdown_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.md?lang=ar","json_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.json?lang=ar","api_url":"https://publicasta.com/api/public/v1/channels/it_today_news/articles/cloudflare_web_analytics_rum_edge_defaults_governance?lang=ar"},{"language":"de","title":"Cloudflare Web Analytics: Wenn CDN-Standards zu Produktionsänderungen werden","html_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance?lang=de","markdown_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.md?lang=de","json_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.json?lang=de","api_url":"https://publicasta.com/api/public/v1/channels/it_today_news/articles/cloudflare_web_analytics_rum_edge_defaults_governance?lang=de"},{"language":"en","title":"Cloudflare Web Analytics backlash: when CDN defaults become production changes","html_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance?lang=en","markdown_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.md?lang=en","json_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.json?lang=en","api_url":"https://publicasta.com/api/public/v1/channels/it_today_news/articles/cloudflare_web_analytics_rum_edge_defaults_governance?lang=en"},{"language":"es","title":"La polémica de Cloudflare Web Analytics: cuando los valores por defecto del CDN cambian producción","html_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance?lang=es","markdown_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.md?lang=es","json_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.json?lang=es","api_url":"https://publicasta.com/api/public/v1/channels/it_today_news/articles/cloudflare_web_analytics_rum_edge_defaults_governance?lang=es"},{"language":"fr","title":"La controverse Cloudflare Web Analytics : quand les réglages CDN deviennent des changements en production","html_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance?lang=fr","markdown_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.md?lang=fr","json_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.json?lang=fr","api_url":"https://publicasta.com/api/public/v1/channels/it_today_news/articles/cloudflare_web_analytics_rum_edge_defaults_governance?lang=fr"},{"language":"pl","title":"Spór o Cloudflare Web Analytics: gdy domyślne ustawienia CDN zmieniają produkcję","html_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance?lang=pl","markdown_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.md?lang=pl","json_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.json?lang=pl","api_url":"https://publicasta.com/api/public/v1/channels/it_today_news/articles/cloudflare_web_analytics_rum_edge_defaults_governance?lang=pl"},{"language":"ru","title":"Спор вокруг Cloudflare Web Analytics: когда настройки CDN становятся изменениями в production","html_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance?lang=ru","markdown_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.md?lang=ru","json_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.json?lang=ru","api_url":"https://publicasta.com/api/public/v1/channels/it_today_news/articles/cloudflare_web_analytics_rum_edge_defaults_governance?lang=ru"},{"language":"zh","title":"Cloudflare Web Analytics 争议：当 CDN 默认设置变成生产变更","html_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance?lang=zh","markdown_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.md?lang=zh","json_url":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.json?lang=zh","api_url":"https://publicasta.com/api/public/v1/channels/it_today_news/articles/cloudflare_web_analytics_rum_edge_defaults_governance?lang=zh"}],"_links":{"self":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.json?lang=ru","api":"https://publicasta.com/api/public/v1/channels/it_today_news/articles/cloudflare_web_analytics_rum_edge_defaults_governance?lang=ru","html":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance?lang=ru","canonical":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance?lang=ru","markdown":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.md?lang=ru","json":"https://publicasta.com/it_today_news/cloudflare_web_analytics_rum_edge_defaults_governance.json?lang=ru","channel":"https://publicasta.com/api/public/v1/channels/it_today_news","channel_articles":"https://publicasta.com/api/public/v1/channels/it_today_news/articles","search":"https://publicasta.com/api/public/v1/search","documentation":"https://publicasta.com/api-docs#reading-publicasta","openapi":"https://publicasta.com/api-docs/openapi.json","llms":"https://publicasta.com/llms.txt"}}