<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <language>ru</language>
    <title>Cloudflare</title>
    <description/>
    <link>https://tproger.ru/tag/cloudflare</link>
    <atom:link href="https://tproger.ru/tag/cloudflare/feed" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Sat, 03 Oct 2026 19:32:04 GMT</lastBuildDate>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>12</sy:updateFrequency>
    <image>
      <title>Cloudflare</title>
      <link>https://tproger.ru</link>
      <url>https://tproger.ru/apple-touch-icon.png</url>
    </image>
    <item>
      <title>Прототип Cloudflare сжал текст в кэше в 2,8 раза ценой пары процентов CPU</title>
      <link>https://tproger.ru/news/prototip-cloudflare-szhal-tekst-v-kewe-v-2-8-raza-cenoj-pary-proc</link>
      <comments>https://tproger.ru/news/prototip-cloudflare-szhal-tekst-v-kewe-v-2-8-raza-cenoj-pary-proc?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Tproger]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/prototip-cloudflare-szhal-tekst-v-kewe-v-2-8-raza-cenoj-pary-proc</guid>
      <description><![CDATA[<p>Cloudflare описала прототип Cache Transcoding в Pingora: текстовые ответы сжимаются zstd при записи в кэш и распаковываются перед выдачей. Коэффициент 2,834x, цена 4,31 нс на байт. Разбираем, где приём применим у себя.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/prototip-cloudflare-szhal-tekst-v-kewe-v-2-8-raza-cenoj-pary-proc">Прототип Cloudflare сжал текст в кэше в 2,8 раза ценой пары процентов CPU</a>»</p>]]></description>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[CDN]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 02 Sep 2026 01:33:29 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloudflare 1 сентября <a href="https://blog.cloudflare.com/cache-transcoding/">описала</a> прототип Cache Transcoding: подходящие ответы сжимаются алгоритмом zstd перед записью на диск кэша и перед передачей между уровнями Tiered Cache, а перед выдачей клиенту распаковываются. В тестах компании подходящие объекты стали занимать в среднем треть исходного места. Для тех, кто держит собственный кэширующий прокси или CDN, это готовая схема обмена дешёвого CPU на дорогой диск.</p><p>Автор публикации Ааши Патель из Cloudflare объясняет мотивацию просто: память и диски дорожают, а кэш-серверы Cloudflare хранят огромный объём текста, который origin-серверы отдают без сжатия. Прототип реализован внутри Pingora, прокси-фреймворка компании на Rust.</p><ul><li>На контрольном наборе коэффициент сжатия составил 2,834x при zstd уровня 3.</li><li>Кодирование стоит 4,31 нс на байт (около 232 МБ/с), декодирование 1,56 нс на байт (около 641 МБ/с).</li><li>HTML, JSON, CSS и JavaScript давали 67,3% запросов, но только 22,3% байтов; около 71% таких ответов приходили без Content-Encoding.</li><li>Картинки, видео и шрифты занимали 63,3% байтов при 21,4% запросов; повторно сжимать их невыгодно.</li><li>Порог 4 КиБ отсекает мелкие объекты и теряет около 1% потенциально сжимаемых байтов.</li></ul><h2>Почему сжимать пришлось именно в кэше</h2><p>Казалось бы, текст в интернете и так сжат. Но по замерам Cloudflare около 71% текстовых ответов приходят от origin-серверов без заголовка Content-Encoding: сжатие для клиента делает уже edge-сервер, а на диск кэша объект ложится сырым. При этом HTML, JSON, CSS и JavaScript составляли 67,3% запросов и 22,3% байтов, а медиа и шрифты 21,4% запросов и 63,3% байтов. Пересжимать медиа бессмысленно: оно уже сжато своими кодеками. Значит, целевая доля кэша, где сжатие даёт эффект, это примерно пятая часть байтов.</p><p>Ключевая фраза публикации: «стоимость кодирования оплачивается один раз, когда объект попадает в кэш» (перевод редакции). Дальше объект читают многократно, а декодирование почти в три раза дешевле кодирования. Между дата-центрами через Tiered Cache объект едет уже сжатым, и это экономит ещё и междатацентровый трафик.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-09-02/0f339ada-ed27-4fd6-8d3a-853b7e473f36.webp" alt="Схема Cache Transcoding: объект сжимается на входе в кэш, передаётся между уровнями сжатым и распаковывается перед клиентом" /><figcaption>Путь объекта через уровни кэша в прототипе Cache Transcoding. Источник: Cloudflare</figcaption></figure><h2>Критерии и цифры</h2><p>В прототипе сжимались только ответы 200 OK с тремя условиями: заголовок Content-Encoding не задан, тип содержимого сжимаемый, известен Content-Length не меньше 4 КиБ. Range-запросы, уже сжатые ответы, тела неизвестной длины и бинарное содержимое проходят без изменений. Порог 4 КиБ исключил много мелких запросов, но потерял, по расчётам компании, около 1% потенциально сжимаемых байтов: «сжатие всего подходящего текста от 4 КиБ и выше дало почти всю измеренную экономию места».</p><p>Замеры производительности проводились на более чем миллионе запросов через 10 кэш-серверов. Коэффициент 2,834x получен на двух тестовых объектах размером около 195 и 272 КиБ, а не на всём кэше сервиса. Кодирование zstd уровня 3 стоило 4,31 нс на байт, декодирование 1,56 нс на байт. Дополнительная нагрузка на CPU при выбранных предположениях, по оценке Cloudflare, составила несколько процентов. Это замер вендора на его трафике; на другом профиле содержимого доля текста и коэффициент будут иными.</p><h2>Как повторить у себя</h2><p>Приём применим к любому кэширующему слою, где объекты хранятся на диске и читаются чаще, чем пишутся: nginx с proxy_cache, Varnish, самописные кэши на Pingora или Go. Порядок действий по мотивам публикации:</p><ol><li>Измерить долю ответов без Content-Encoding и их суммарный объём: если origin уже сжимает всё, выигрыша не будет.</li><li>Ограничить кандидатов по типу содержимого и размеру; порог 4 КиБ у Cloudflare покрыл почти всю экономию.</li><li>Сжимать один раз при записи, хранить сжатым, декодировать при выдаче; прототип Cloudflare всегда декодирует объект, а отдачу сжатого представления клиенту напрямую компания называет будущей работой.</li><li>Считать CPU: при 232 МБ/с на кодирование одно ядро обслуживает ограниченный поток записи, и на серверах с высокой долей промахов кэша это может стать узким местом.</li></ol><p>Для российских хостингов и собственных CDN аргумент тот же, что у Cloudflare: диски и память дорожают, а zstd есть в любом дистрибутиве и в библиотеках для всех основных языков. Cloudflare описывает внутренний прототип, а не продукт, поэтому ни включить, ни купить эту функцию нельзя; повторять придётся у себя.</p><h2>Что осталось проверить</h2><p>Компания перечисляет открытые вопросы: другие уровни zstd, другие типы объектов, range-запросы и предварительно сжатые ответы. Zstandard, напомним, разработан Янном Колле и открыт в 2016 году; в более раннем тестировании Cloudflare он сжимал на 42% быстрее Brotli и давал файлы на 11,3% меньше gzip при сопоставимой скорости. Редакция проверит, дойдёт ли прототип до боевой сети и появятся ли цифры по общей экономии.</p><p>Источник: <a href="https://blog.cloudflare.com/cache-transcoding/">Блог Cloudflare: Cache Transcoding</a></p><p>Изображение на обложке: Cloudflare</p>]]></content:encoded>
    </item>
    <item>
      <title>Своя self-hosted двухсерверная VPN-архитектура. Подробный путь разработки и ошибки, с которыми вы можете столкнуться</title>
      <link>https://tproger.ru/articles/svoya-self-hosted-dvuhservernaya-vpn-arhitektura-podrobnyj-put-r</link>
      <comments>https://tproger.ru/articles/svoya-self-hosted-dvuhservernaya-vpn-arhitektura-podrobnyj-put-r?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Роман Фролов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/svoya-self-hosted-dvuhservernaya-vpn-arhitektura-podrobnyj-put-r</guid>
      <description><![CDATA[<p>Проект представляет из себя быстрый способ воссоздать архитектуру состоящую из 2 серверов (локальный + удаленный) с определенными сервисами, которые решают специфические задачи. Проект сделан прежде всего для меня, а также для людей которые хотят свой готовый self-hosted сервер из коробки с полной системой обслуживания</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/svoya-self-hosted-dvuhservernaya-vpn-arhitektura-podrobnyj-put-r">Своя self-hosted двухсерверная VPN-архитектура. Подробный путь разработки и ошибки, с которыми вы можете столкнуться</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Ruby]]></category>
      <category><![CDATA[unix]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Музыка]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[DIY]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[VPN]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Redis]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[NFT]]></category>
      <category><![CDATA[Машин]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[DeFi]]></category>
      <category><![CDATA[Grafana]]></category>
      <category><![CDATA[VPS]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 26 Jul 2026 15:46:26 GMT</pubDate>
      <content:encoded><![CDATA[<p>Всё
 началось с того, что меня перестал устраивать мой подход к 
развертыванию личных сервисов. Я решил переписать всё с нуля. К тому же 
это был отличный повод получить новые навыки и попробовать инструменты, 
до которых давно не доходили руки.</p><p>Арендовать мощные VPS под 
ресурсоемкие задачи в текущих реалиях выходит неоправданно дорого. При 
этом дома у меня уже был выделенный неттоп (мини-ПК) с 16 ГБ оперативной
 памяти на базе энергоэффективного процессора Intel N95.</p><p>Пройдя 
путь от простых Bash-скриптов и сторонних туннелей до полностью 
автоматизированной инфраструктуры, я создал проект ServeHub-2. В этой 
статье я подробно разберу, как эволюционировала сеть проекта, почему 
декларативный подход победил императивный и с какими неочевидными багами
 пришлось столкнуться в процессе автоматизации.</p><h2>История настройки сетевой архитектуры</h2><h3>Использование Tuna</h3><p>В
 самом начале проекта я еще не думал о VPN как о способе пробития NAT и 
основе, на которой будет строиться вся система. Первое, к чему я пришел —
 сервис Tuna. Если кратко, это аналог Cloudflare Tunnel за условные 300 
рублей. У него очень приятный веб-интерфейс и невероятно простая 
настройка. Однако для полноценной независимой архитектуры он не подошел 
по двум причинам:</p><ul><li>Сервера Tuna находятся вне контроля пользователя.</li><li>На удаленном сервере нельзя развернуть свои сопутствующие сервисы.</li></ul><p>В целом сервис действительно удобный, но для моих задач он оказался слишком ограничивающим.</p><p>Вот
 пример конфига для tuna (все максимально просто, создаем контейнеры для
 ssh туннеля, чтобы был доступ ssh, а также основной http туннель с 
привязкой к nginx или любому другому прокси если такой есть):</p><h3>В поисках гибкости: тесты Pangolin и переход к FRP</h3><p>После Tuna я решил двигаться в сторону собственного контроля и попробовал Pangolin.
 Однако решение быстро отвалилось: для дешёвого сервера оно оказалось 
слишком «тяжёлым» и избыточным. Главные минусы — ощутимый оверхед по 
ресурсам и лишний слой принудительной веб-аутентификации перед самими 
сервисами. Это ломало нормальное взаимодействие с родными мобильными 
клиентами (вроде Element для Matrix или Bitwarden для паролей), где 
повторная авторизация в браузере просто не нужна.</p><p>На смену пришел FRP (Fast Reverse Proxy).
 Он выполнял ту же функцию проброса, но хостил я его уже на собственном 
арендованном VPS в режиме Layer 4 (TCP). Это дало абсолютную гибкость: 
внешний VPS не заглядывал внутрь пакетов и ничего не расшифровывал, а 
просто пересылал сырой поток домой. Кроме того, это отлично 
оптимизировало расходы: вместо 300 рублей за Tuna и ещё 300 рублей за 
отдельный VPN, я стал платить всего 500 рублей за один стойкий VPS, 
который мог настраивать как хочу. (к тому же можно было обойтись даже 
дешевле, так как VPS с 4 гб оперативки загружен всего лишь на 40%, 
процессор всего на 20%-40%)</p><p>FRP состоит из 2 конфигурационных 
файлов (один на удаленном сервере frp server, другой на локальном frp 
client), все также довольно просто, однако его можно использовать на 
разных слоях. У меня он брал трафик за стандартный TCP и передавал его 
на локальный сервер.</p><p>Также доп. фишка в том что основная 
конфигурация происходит именно в frpc, который, в свою очередь, передает
 часть настроек на frp на удаленном сервере.</p><p>frpc.toml:</p><p>frps.toml:</p><h3>Полноценный переезд на WireGuard (AmneziaWG) и 8 часов отладки</h3><p>Со временем архитектура эволюционировала в сторону полноценной VPN-сети на базе WireGuard, а точнее — его модификации AmneziaWG. Причин для этого шага было несколько:</p><ul><li>Безопасность: FRP всё же открывал внутренние ресурсы в публичный интернет, оставляя их доступными для сканеров портов.</li><li>Удобство маршрутизации:
 Все участники сети стали равноправными узлами в одной виртуальной 
локальной подсети. Больше не нужно было настраивать постоянные 
односторонние пробросы.</li><li>Дополнительный бонус:
 Поскольку удаленный VPS был куплен в Нидерландах, через этот же VPN я 
автоматически получил безопасный доступ ко всем зарубежным ресурсам.</li></ul><p>Для реализации схемы на удаленном VPS был развернут контейнер wg-easy с поддержкой AmneziaWG, а на домашнем мини-ПК — клиентский контейнер Amnezia (сборка из Dockerfile с использованием amnezia-tools  и модулем ядра хоста).</p><p>И
 именно здесь я поймал самый изнурительный баг проекта. После 
развертывания трафик упорно шёл только в одну сторону. Часов 8 ушло на 
диагностику iptables, маршрутов и чтение зарубежных форумов (что 
бесполезно, учитывая специфику наших блокировок). Оказалось, провайдер 
просто дропал обратный трафик стандартного WireGuard, так как пакеты шли
 без маскировки. Причина крылась в docker-compose.yml: у меня было прописано image: ghcr.io/wg-easy/wg-easy:latest. Как выяснилось, тег latest  на Docker Hub намертво прилип к старой 14-й версии, а поддержка параметров AmneziaWG появилась только в ветке 15.x. Изменение тега на конкретную версию (15.3) решило проблему за секунду.</p><p>Благодаря
 переходу конфигурация получилась максимально простой, основные отличия 
от стандартной документации выделил в коде: (в основном то, на что 
пришлось долго рыть информацию)</p><h3>Настройка Nginx</h3><p>Чтобы
 сервисы были доступны исключительно внутри подсети VPN, я задействовал 
Nginx. Доступ к приложениям был жестко ограничен на уровне конфигурации —
 веб-сервер принимает запросы только из диапазона IP-адресов 10.8.0.0/24. Любые попытки постучаться на сервер из внешнего интернета без активного VPN-туннеля автоматически сбрасываются Nginx.</p><p>Логика
 распределения завязана на proxy-протоколе: Nginx на удаленном VPS 
выступает основным входным узлом, принимает зашифрованный трафик, 
заворачивает его в заголовки с реальным IP-адресом клиента и через 
туннель перекидывает на локальный Nginx домашнего сервера. Локальный 
веб-сервер уже сам расшифровывает SSL и распределяет трафик по конечным 
Docker-контейнерам, сохраняя реальные IP в логах безопасности.</p><p>Вставлю
 один кусок кода из nginx на удаленной машине для примера, так все 
остальное примерно похоже (конфиги использовались в виде .template):</p><h3>SSL-сертификаты</h3><p>Для получения валидных SSL-сертификатов я настроил работу через автоматический Certbot по challenge-валидации DNS-01 c API Webnames. Сам домен привязан к внутреннему IP-адресу 10.8.0.1.
 Проверка через DNS позволила выпустить единый wildcard-сертификат на 
весь домен и его поддомены без необходимости держать открытым 80-й порт 
веб-сервера наружу.</p><p>Уточню, что certbot запускается автоматически 
во время выполнения Ansible плейбука, поэтому самому кроме указания 
переменных ничего делать не нужно.</p><p>В
 итоге получилась схема, при которой все сервисы доступны по красивым 
доменным именам с HTTPS, но абсолютно невидимы для внешнего интернета.</p><p>Вот настройка certbot:</p><h2>История софта</h2><p>Параллельно
 с сетевой структурой развивался и сам набор приложений. Изначально я 
хотел собрать в одном месте утилиты, которыми пользуюсь каждый день, но в
 процессе селфхостинга быстро понимаешь: нельзя просто накидать 
контейнеров и надеяться, что мини-ПК справится, а конфигурационные файлы
 не превратятся в кашу.</p><h3>Первый стек и оптимизация</h3><p>Первыми на домашнем сервере прижились медиа-сервисы: Navidrome для стриминга музыки и Audiobookshelf
 для аудиокниг и подкастов. Они легковесные, имеют отличные мобильные 
клиенты с синхронизацией прогресса и полностью закрывают мои 
потребности. Позже к ним добавился Nextcloud как единое независимое облако для файлов, контактов и семейных документов.</p><p>Затем встал вопрос безопасного хранения паролей. Сначала я смотрел в сторону оригинального Bitwarden, но в итоге я выбрал Vaultwarden
 — альтернативный сервер на Rust, полностью совместимый с API Bitwarden.
 Он потребляет считанные мегабайты оперативной памяти и работает 
идеально. Дополнительно для удобства управления всей этой распределенной
 Docker-инфраструктурой в локальный стек был добавлен Portainer. (+ Portainer Agent на удаленный сервер)</p><p>Из интересных моментов, где мне пришлось немного больше возиться, чем с остальными сервисами это nextcloud настройка:</p><h3>Ошибки проектирования: почему я удалил Matrix (Synapse)</h3><p>Не все решения прошли проверку временем. На этапе использования Tuna и FRP я развернул сервер Matrix (Synapse)
 для защищенного обмена сообщениями. Мне казалось это крутой идеей, но 
когда я окончательно перешел на AmneziaWG, целесообразность мессенджера 
внутри закрытого туннеля сошла на нет.</p><p>Synapse требовал слишком 
много ресурсов, впустую расходовал оперативку домашнего ПК и усложнял 
конфиг Nginx. При этом реальной пользы для семьи он не приносил. Для 
критических алертов инфраструктуры и повседневного общения проще и 
эффективнее оказалось использовать Telegram. (плюс алертинг настроен 
именно через него) В итоге я полностью выпилил Synapse из стека, 
освободив ресурсы.</p><p>Вместо него я добавил в связку к wg-easy локальный AdGuard Home.
 Теперь он работает прямо внутри VPN-сети: очищает весь трафик от 
рекламы и трекеров на лету, кэширует DNS-запросы и не дает истории 
веб-серфинга улетать внешним провайдерам.</p><p>Основной проблемой с 
которой я столкнулся при использовании AdGuard Home, так это то что я 
так и не понял как заставить использовать AmneziaVPN клиент AdGuard как 
основной DNS, при этом AmneziaWG работает прекрасно. Как я понимаю дело в
 том что AmneziaWG работает намного проще на уровне ip и у него нету 
никаких доп фильтров, настроек и подобного, поэтому он просто берет 
данные из конфига.</p><h3>От костылей на Bash к декларативному Ansible</h3><p>Весь
 стек на обоих серверах разворачивался через bash скрипты, что было уж 
очень плохо с точки зрения идемпотентности. Во первых из-за bash мне 
постоянно приходилось очищать сервера, так как нормальных проверок у 
меня не было и писать я их не хотел, а также было много костылей с 
импортом переменных, записями в файлы и подобным.</p><p>Так я пришел к декларативному подходу и Ansible.
 Теперь вся конфигурация описывается в виде плейбуков и ролей, 
отражающих конечное желаемое состояние серверов. Конфиденциальные данные
 перенесены в файл secrets.yml, а хрупкие конструкции 
автоматизированы через шаблоны Jinja2. Проект стал идемпотентным: если 
шаги уже выполнены, Ansible их просто пропускает.</p><p>В итоге 
получилось несколько yaml файлов для стандартной настройки системы 
(bootstrap_os.yml) и для настройки каждого из хостов (setup_local.yml и 
setup_remote.yml). В итоге теперь все что нужно чтобы полностью с нуля 
развернуть проект - скачать Ansible, несколько других зависимостей на 
свой рабочий пк и запустить один manage_deploy.sh, в котором можно будет
 выбрать сценарий как будет вести себя Ansible и спокойно дождаться 
разворачивания сервисов.</p><p>Также благодаря Ansible я удобно 
реализовал переносимость проекта. Так как я решил не использовать тома 
docker, и вместо этого храню все в папках, чтобы перенести старые данные
 проекта нужно просто скопировать папку apps-data и положить ее в нужное
 место и все само заработает после повторного развертывания проекта. В 
Ansible выделяется отдельная пауза для этого.</p><p>Вот пример основного плейбука deploy.yml:</p><h3>Тестирование мультидистрибутивности с помощью Vagrant</h3><p>Проект
 изначально затачивался под работу на трех дистрибутивах: Ubuntu, Debian
 и Arch Linux. Тестировать Ansible-плейбуки прямо на рабочей локальной 
машине (в моем случае — EndeavourOS) слишком рискованно, а создавать 
виртуальные машины руками — долго и неудобно.</p><p>Решением стал Vagrant,
 позволяющий за пару минут развернуть чистые ОС в VirtualBox из готовых 
образов. Но в процессе настройки мультивендорного стенда в режиме 
сетевого моста (public_network) всплыли две критические проблемы:</p><ol><li>Конфликт DNS:
 По умолчанию Vagrant создает NAT-интерфейс для управления нодой. При 
включении второго (публичного) интерфейса для локальной сети ломался 
дефолтный DNS-резолвер. Проблему пришлось решать принудительной очисткой
 и перезаписью файла /etc/resolv.conf через inline-скрипт автоматизации Vagrant.</li><li>Проблема с GRUB на Debian: В используемом базовом образе generic/debian12
 конфигурация GRUB сохраняла жесткую привязку к конкретному имени диска 
из окружения сборщика. При повторном развертывании плейбуков на тестовом
 стенде это приводило к сбоям загрузчика. Чтобы автоматизировать 
очистку, пришлось внедрить скрипт, который на лету определяет имя 
системного диска через lsblk и автоматически передает правильные параметры в загрузчик через утилиту debconf-set-selections.</li></ol><p>Вот код Vagrantfile: (в node.vm.provision происходит основное решение ошибок)</p><p>Надежная система бэкапов на базе BorgmaticДля создания резервных копий я внедрил Borgmatic
 (удобную надстройку над дедуплицирующим инструментом Borg Backup). Весь
 процесс автоматизирован с помощью связки системных юнитов borgmatic.service и borgmatic.timer. В бэкап уходят две ключевые директории: apps-data (конфигурации приложений и баз данных) и PersonalData (медиатека: музыка, книги, подкасты, файлы Nextcloud).</p><p>Развертывание
 системы бэкапов полностью берет на себя Ansible. Мне достаточно указать
 UUID внешнего жесткого диска — скрипт сам проверит его наличие в 
системе, примонтирует в нужную директорию, создаст зашифрованный 
репозиторий и настроит политику ротации (хранение 7 ежедневных, 4 
еженедельных и 6 ежемесячных копий). Также в Prometheus выведен 
мониторинг самого репозитория .borg для отслеживания его размера и статуса успешности архивации.</p><p>Главная
 проблема при бэкапе работающих Docker-контейнеров — риск скопировать 
базу данных в «битом» или неконсистентном состоянии, если в момент 
создания архива в нее шла активная запись. Чтобы решить эту проблему, я 
задействовал механизм хуков в конфигурации Borgmatic.</p><p>Перед началом резервного копирования автоматически срабатывает команда остановки контейнеров проекта (docker-compose down),
 а после успешного завершения (или в случае возникновения непредвиденной
 ошибки) контейнеры автоматически поднимаются обратно в фоновом режиме. 
Для удобного просмотра архивов и быстрого восстановления файлов я 
развернул веб-интерфейс Borg UI.</p><p>Конфигурация borgmatic: (использую как Jinja2 шаблон, чтобы Ansible в плейбуках сам подставил переменные)</p><h2>Наблюдаемость (Observability) уровня Enterprise</h2><p>В последних релизах (v1.2.0 и v1.3.0) фокус проекта сместился на мониторинг и работу с логами.</p><h3>Эволюция алертинга и переход на Gatus</h3><p>Изначально для мониторинга доступности я смотрел на Uptime Kuma, но отказался из-за отсутствия удобной декларативной настройки через конфиги. Затем я развернул связку Blackbox Exporter и Alertmanager
 с уведомлениями в Matrix. Но тут крылась логическая несостыковка: весь 
алертинг был завязан на локальном ПК, и в случае его аппаратного отказа я
 бы просто лишился уведомлений.</p><p>Тогда я решил вернуть Uptime Kuma,
 но развернуть его на удаленном VPS в качестве внешнего «сторожа» и 
автоматизировать его настройку через Python-скрипт с библиотекой uptime-kuma-api. Но и тут ждали «грабли» — библиотека не обновлялась три года и намертво ломалась на свежих версиях Kuma.</p><p>В итоге идеальным решением стал Gatus.
 Он изначально проектировался под управление через YAML-конфиги и 
поддерживает отправку алертов, если сервер не отвечает. Из-за специфики 
фронтенда Gatus (он не умеет работать из подкаталога типа /gatus), мне пришлось перенести его и wg-easy на полноценные субдомены gatus. и wireguard.</p><p>Для Gatus получился простой конфиг:</p><p>Для мониторинга аппаратных ресурсов удаленного и локального серверов была развернута связка node-exporter + cAdvisor. Все уведомления теперь приходят мгновенно в Telegram-бота. Чтобы 
избежать лавины одинаковых сообщений (например, при перезагрузке хоста),
 в Alertmanager настроена жесткая группировка и дедупликация событий. 
Также добавлен экспортер для AdGuard Home, выводящий статистику 
заблокированных запросов в Grafana.</p><h3>Централизованные логи: Loki + Grafana Alloy</h3><p>В релизе v1.3.0 в стек была добавлена централизованная система сбора логов Loki. Вместо устаревшего Promtail в качестве агента сбора я применил Grafana Alloy.</p><p>Он
 эффективно собирает логи со всех запущенных Docker-контейнеров, парсит 
их и передает в Loki. Теперь вся история событий, ошибок веб-сервера 
Nginx или падений внутренних приложений доступна в едином интерфейсе 
Grafana с возможностью удобной фильтрации через LogQL, что значительно 
упрощает отладку.</p><p>Конфиг Loki:</p><p>Конфиг Grafana Alloy: (локальный конфиг)</p><h2>Интерфейс: переход на Homepage</h2><p>Изначально для 
домашней страницы я написал кастомную минималистичную HTML-панель с 
Glassmorphism-дизайном. Выглядело это красиво, но добавлять новые 
сервисы вручную через постоянную правку исходного кода было крайне 
неудобно.</p><figure><img src="https://media.tproger.ru/user-uploads/139471/2026-07-15/8a8f2752-8aac-4aa5-898e-98affd01cdff.webp" alt="" /><figcaption>HTML + CSS</figcaption></figure><p>В итоге я заменил самописную страницу на полноценный комьюнити-проект Homepage.
 Это дало некоторую гибкость: вся панель настраивается через простые 
YAML-файлы и поддерживает встроенные виджеты интеграции. Пока что она 
простенькая, но возможно в будущем сделаю что-то более продвинутое.</p><figure><img src="https://media.tproger.ru/user-uploads/139471/2026-07-15/90c65d4a-1310-4a30-b1ad-9e4d3083959d.webp" alt="" /><figcaption>Homepage</figcaption></figure><h2>Заключение</h2><p>Постарался
 подробно рассказать о структуре проекта и как я к этому пришел, очень 
много я не добавил, если пост зайдет, то я обязательно более подробно 
пройдусь по некоторым моментам: как я настраивал Matrix и на каком 
моменте я решил его убрать, как собирал локальный amnezia 
контейнер-клиент, что нового я добавил в релизе 1.4.0 и другое.</p><p>Также
 я перешел с manage_deploy.sh на отдельный GUI клиент, который 
будет полностью автоматизировать процесс подготовки к deploy. (написан на Go Wails). Про это тоже возможно сделаю статью.</p><p>Вся кодовая база проекта, подробная документация, инструкции по развертыванию открыты и доступны для сообщества:</p><p>🔗 GitHub-репозиторий: <a href="https://github.com/canntstand/ServeHub-2" rel="noopener noreferrer nofollow">https://github.com/canntstand/ServeHub-2</a></p><p>Это
 моя первая статья на этом сайте и в то же время первый личный проект, которому я 
отдал так много времени (3 месяца). Буду рад вашему фидбеку в 
комментариях!</p>]]></content:encoded>
    </item>
    <item>
      <title>Бесплатный WAF инструмент кибербезопасности, который я использую</title>
      <link>https://tproger.ru/articles/besplatnyj-waf-instrument-kiberbezopasnosti-kotoryj-ya-ispolzuyu</link>
      <comments>https://tproger.ru/articles/besplatnyj-waf-instrument-kiberbezopasnosti-kotoryj-ya-ispolzuyu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Неопознанный программист]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/besplatnyj-waf-instrument-kiberbezopasnosti-kotoryj-ya-ispolzuyu</guid>
      <description><![CDATA[<p>Разбор бесплатного open-source WAF SafeLine для защиты от OWASP Top 10, DDoS и ботов. Сравнение с ModSecurity и Cloudflare по точности обнаружения атак, минимальные ложные срабатывания, простая установка одной командой Docker.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/besplatnyj-waf-instrument-kiberbezopasnosti-kotoryj-ya-ispolzuyu">Бесплатный WAF инструмент кибербезопасности, который я использую</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[.NET]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[IBM]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[CSR]]></category>
      <category><![CDATA[PostgreSQL]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 01 Jul 2026 05:55:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Решения с открытым исходным кодом достигли такого уровня зрелости, что сегодня они действительно могут конкурировать с коммерческими продуктами — не только по функциональности, но и по удобству использования и поддержке сообщества. Если вы управляете собственной инфраструктурой, больше нет оправдания тому, чтобы оставлять дверь открытой для угроз.</p><p>SafeLine WAF — это бесплатный инструмент, который я лично тестировал.</p><p>Это полностью open-source решения, продукт с действительно бесплатной Community Edition, где ключевые функции не урезаны.</p><p><b>SafeLine WAF — веб-приложенийный межсетевой экран, который действительно поставляется с разумными настройками по умолчанию</b></p><p><b>Что он делает:</b></p><p>Защищает веб-приложения от SQL-инъекций, XSS-атак, командных инъекций, CSRF, SSRF, атак включения файлов и других угроз из списка OWASP Top 10. Также поддерживает защиту от CC/DDoS-атак, управление ботами и может работать как шлюз аутентификации.</p><p><b>Почему он:</b></p><p>Большинство WAF с открытым исходным кодом достаточно сложно настроить. Можно потратить часы на настройку правил, пытаясь остановить ложные срабатывания, из-за которых легитимные пользователи блокируются.</p><p>SafeLine использует другой подход — вместо того чтобы полностью полагаться на сигнатурное обнаружение, он применяет движок семантического анализа, который фактически анализирует и понимает входящие HTTP-запросы. Это позволяет добиться более высокого уровня обнаружения при значительно меньшем количестве ложных срабатываний по умолчанию.</p><p>Некоторые показатели, которые стоит учитыват</p><ol><li>Уровень обнаружения - SafeLine (Balanced) (71.65%), ModSecurity (Level 1) (69.74%), Cloudflare (Free) (10.7%)</li><li>Уровень ложных срабатываний - SafeLine (Balanced) (0.07%), ModSecurity (Level 1) (17.58%), Cloudflare (Free) (0.07%)</li><li>Точность - SafeLine (Balanced) (99.45%), ModSecurity (Level 1) (82.20%), Cloudflare (Free) (98.40%)</li></ol><p>Сбалансированный профиль SafeLine обнаруживает более 70% атак, при этом блокируя легитимный трафик ошибочно всего в 0.07% случаев. Это именно тот уровень настроек по умолчанию, который можно использовать в промышленной среде без постоянного ручного контроля.</p><p>Установка выполняется одной командой</p><p>После запуска он разворачивается как набор Docker-контейнеров: Tengine (форк Nginx) используется в качестве reverse proxy, отдельный сервис отвечает за семантический анализ, PostgreSQL хранит конфигурации и логи, а удобная веб-панель администратора работает на порту 9443.Community Edition поддерживает до 10 сайтов, чего достаточно для большинства личных проектов и небольших бизнес-сценариев.</p><p>Сайт: <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fcodeby.net%2Fgoto%2Flink-confirmation%3Furl%3DaHR0cHM6Ly9jeWJlcnNlcnZhbC50ZWNoL2xhbmRpbmcvc2FmZWxpbmXvv7xHaXRIdWI%253D%26s%3D7008b60d8a0849ba0be350fe25edfa72&amp;postId=3005263" rel="nofollow noopener">https://cyberserval.tech/landing/safeline</a></p><p>GitHub:<a href="https://api.vc.ru/v2.8/redirect?to=http%3A%2F%2Fgithub.com%2Fchaitin%2FSafeLine&amp;postId=3005263" rel="nofollow noopener"> github.com/chaitin/SafeLine</a> (более 21 тыс. звёзд)</p><p>Лицензия: GPL-3.0 / MIT (Community Edition)</p>]]></content:encoded>
    </item>
    <item>
      <title>Как мы нашли баг в HTTP-библиотеке hyper</title>
      <link>https://tproger.ru/translations/kak-my-nawli-bag-v-http-biblioteke-hyper</link>
      <comments>https://tproger.ru/translations/kak-my-nawli-bag-v-http-biblioteke-hyper?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/kak-my-nawli-bag-v-http-biblioteke-hyper</guid>
      <description><![CDATA[<p>Перестраивая Images binding, команда Cloudflare случайно обнаружила баг в открытой библиотеке hyper, который существовал сразу в нескольких мажорных версиях.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/kak-my-nawli-bag-v-http-biblioteke-hyper">Как мы нашли баг в HTTP-библиотеке hyper</a>»</p>]]></description>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Сетевые протоколы]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Баги и ошибки]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 25 Jun 2026 15:29:36 GMT</pubDate>
      <content:encoded><![CDATA[<p>Перевод статьи Дины Лам (Deanna Lam), Диретнана Домнана (Diretnan Domnan) и Мэтта Льюиса (Matt Lewis) из Cloudflare Blog, оригинал: <a href="https://blog.cloudflare.com/hyper-bug/">https://blog.cloudflare.com/hyper-bug/</a></p><p>Сервис Images, написанный на Rust и работающий в Workers, запущен на каждой машине в edge-сети Cloudflare. Чтобы обрабатывать клиентские соединения, мы используем hyper — открытую HTTP-библиотеку для Rust.</p><p>В прошлом году мы представили Images binding — он позволяет создавать кастомные программные сценарии обработки удалённых изображений в Workers. В конце 2025 года мы перестроили binding, чтобы сделать связь между Workers runtime и сервисом Images более прямой и локальной.</p><p>Вскоре после выкатки мы получили сообщения о том, что запросы на трансформацию из binding падают — но только иногда и только для больших изображений. Ещё страннее было то, что ответы на эти запросы возвращали статус 200, и в логах не было никаких ошибок. Данные изображения просто обрывались: ответ, который должен был весить два мегабайта, мог прийти всего в несколько сотен килобайт.</p><p>Мы потратили шесть недель на охоту за почти невидимым багом — состоянием гонки, которое проявлялось только при определённых условиях, — в библиотеке hyper, который влиял на то, как Images binding возвращает обработанные изображения клиенту. В итоге исправление заняло четыре строки кода.</p><p>Cloudflare Images binding перешёл на прямое локальное соединение через Unix-сокеты в декабре 2025 года.</p><p>После выкатки большие изображения стали иногда возвращаться обрезанными: HTTP 200, но тело ответа короче Content-Length.</p><p>Причина — состояние гонки в hyper: цикл poll_loop отбрасывал результат poll_flush, даже если тот возвращал Poll::Pending.</p><p>Баг существовал в hyper 0.14.x, 1.7 и 1.8; прежний посредник FL читал данные достаточно быстро, чтобы он не проявлялся.</p><p>Исправление заняло четыре строки кода: flush теперь выполняется перед shutdown.</p><h2>Прыжки, передачи и hyper</h2><p>Когда разработчики создают приложения на Cloudflare, они собирают full-stack приложения из набора платформенных сервисов, доступных Workers через bindings. Bindings предоставляют прямые API к ресурсам Developer Platform: вычислениям, хранилищам, ИИ-инференсу и обработке медиа.</p><p>Images binding отделяет оптимизацию изображений от доставки: вы можете транскодировать, компоновать или изменять изображения, не возвращая результат в виде HTTP-ответа. Также он позволяет применять параметры оптимизации в любом порядке, а не в фиксированной последовательности, которую навязывает URL-интерфейс. Вот пример: воркер передаёт данные изображения напрямую в Images API, объединяет операции в цепочку и получает обработанный результат в виде потока:</p><p>На высоком уровне так выглядит движение данных через наши сервисы:</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-06-23/4ed76cb3-414e-4ac0-bf31-81e0ba01bb2e.webp" alt="Схема движения данных между Workers runtime, посредником и сервисом Images" /><figcaption>Схема движения данных между Workers runtime, посредником и сервисом Images при использовании Images binding</figcaption></figure><p>Труба на схеме обозначает сокетное соединение между посредником и Images, через которое данные передаются от одного процесса к другому через буфер ядра.</p><p>Binding взаимодействует с Images через сокетное соединение, управляемое Workers runtime. Сокет — это канал связи между двумя процессами. У каждого конца сокета есть буферы, управляемые ядром операционной системы; эти буферы — временные области, где данные остаются после записи одной стороной, но до чтения другой.</p><p>Hyper управляет соединением на стороне сервиса Images: читает входящие запросы из сокета и пишет ответы обратно в него.</p><p>Когда запрос использует Images binding, сервис Images читает входные данные, выполняет запрошенные операции оптимизации и кодирует результат. Затем он передаёт всё закодированное изображение hyper как один непрерывный блок в памяти.</p><p>Hyper записывает эти данные ответа в свой внутренний буфер. На этом моменте hyper считает кодирование завершённым, потому что у него есть все байты, которые нужно отправить. Следующий шаг — сбросить внутренний буфер в исходящий буфер сокета, переместив данные от сервиса Images к посреднику на другом конце.</p><p>Если читатель на другом конце быстрый, hyper может сбросить всё за один проход — в исходящем буфере будет место, потому что читатель потребляет данные по мере поступления. Как только все данные отправлены, hyper вызывает shutdown на сокете, сигнализируя, что соединение завершено и больше данных записано не будет. Но если читатель медленнее (хотя бы на несколько миллисекунд), исходящий буфер заполняется, и hyper должен ждать, пока появится место, чтобы продолжить запись.</p><h2>Локальное соединение</h2><p>Весь входящий трафик в сети Cloudflare проходит через FL — внутренний сервис-посредник, который включает функции безопасности и производительности и маршрутизирует запросы к нужному бэкенду. Когда мы только запустили binding, данные изображений шли из Workers runtime через FL в сервис Images.</p><p>Этот путь хорошо подходил для первого релиза и повторял архитектуру URL-интерфейса. Но со временем связь с FL стала ограничением: любое изменение binding приходилось согласовывать с циклом релизов FL.</p><p>В декабре 2025 года команда Images заменила FL новым посредником — внутренним worker binding, который работает на той же машине. В исходной архитектуре данные шли через FL по сетевым сокетам; этот путь нёс накладные расходы полного конвейера обработки FL, такие как DNS-lookup'ы и маршрутизация.</p><p>Внутренний binding заменил их на Unix-сокеты, чтобы напрямую соединить сервисы на одной машине, минуя FL и накладные расходы сетевого стека. Это ускорило путь запроса к Images и дало команде независимый контроль над релизами binding.</p><p>В течение нескольких дней после выкатки мы получили первый отчёт от клиента.</p><h2>200 OK (не OK)</h2><p>Первый признак проблемы пришёл от клиента с нестандартной конфигурацией: два уровня обработки изображений, где один pipeline был вложен в другой.</p><p>Сначала их воркер с помощью Images binding компоновал несколько больших исходных изображений из R2 — JPEG-фон и PNG-оверлеи — в один объединённый JPEG. Затем результат дополнительно сжимался, транскодировался и изменялся размер через URL-интерфейс.</p><p>Баг возникал на обратном пути внутреннего pipeline, где ответ обрезался до того, как достигал внешнего.</p><p>Внутренний pipeline (transformation binding) отвечал за компоновку. Внешний pipeline (transformation URL) отвечал за оптимизации доставки: масштабирование и конвертацию формата. Такая многоуровневая схема означала, что когда внутренний pipeline молча возвращал обрезанный ответ, видимая ошибка появлялась на уровень выше:</p><p>Внешний pipeline получал от внутреннего HTTP 200 с заголовком Content-Length, который обещал несколько мегабайт. Фактическое тело было лишь частью от этого: в одном запросе из ожидаемых 3,3 МБ пришло всего около 200 КБ. Ошибка всплывала во внешнем pipeline, но обрезка могла произойти в binding, посреднике, сервисе Images или где-то между ними.</p><p>Когда браузер получает обрезанное изображение, результат виден невооружённым глазом. В зависимости от формата изображение либо отрисовывается частично (например, с отсутствующей или серой нижней частью), либо полностью не декодируется и отображается как битое.</p><h2>Отладка вслепую</h2><p>Отсюда мы двигались вглубь по пути запроса, проверяя каждый уровень, чтобы локализовать место обрезки. Некоторые усилия зашли в тупик; другие оставили зацепки, которые сузили поиск:</p><ul><li><b>Сборка репродукции.</b> Мы собрали воркер, повторяющий вложенную схему клиента, и постепенно убирали уровни, пока не смогли воспроизвести баг только с binding. Небольшой скрипт отправлял запросы пачками. На одном из первых прогонов 19 из 25 запросов упали. Объём данных, которые всё-таки приходили, — примерно 200 КБ — настораживающе близко к размеру сокетного буфера в продакшене. Это подтвердило, что проблема не связана с конфигурацией клиента, и дало надёжный способ воспроизводить баг по запросу.</li><li><b>Проверка таймаутов.</b> Сначала мы подозревали, что обрезка связана с поведением таймаутов (то есть соединение закрывалось по истечении лимита времени). Эта теория не подтвердилась: обрезка не коррелировала с длительностью запроса.</li><li><b>Обновление версии hyper.</b> Когда баг впервые зарепортили, мы использовали 0.14.x, а последняя версия hyper была около 1.8.x. Мы протестировали версии 0.14, 1.7 и 1.8 — на случай, если самый очевидный ответ окажется правильным (и самым простым). Но баг проявлялся в каждой версии, значит, upstream-исправления не было.</li><li><b>Локальное воспроизведение.</b> Мы запускали интеграционные тесты на macOS и Debian-виртуалке. Даже под значительной нагрузкой локальные запросы никогда не падали. Прямые curl-запросы к сокету binding и повтор отловленных запросов всегда работали. Баг проявлялся только на полном продакшен-пути при реальной конкурентности и реальном клиенте Workers runtime на другом конце сокета. Это натолкнуло нас на подозрение, что виноват сам runtime.</li><li><b>Исключение Workers runtime.</b> Мы изучили HTTP-клиент, который Workers runtime использует для связи с Images через сокет binding. Ни на одной из сторон соединения в трассировках не было системных вызовов, указывающих на неожиданное закрытие или преждевременное завершение. Клиент вёл себя корректно, и несколько других сервисов использовали того же клиента без проблем.</li><li><b>Распределённая трассировка.</b> Изучив сквозные трассировки запросов, мы подтвердили, что обрезанное тело уже присутствовало до того, как достигало внешнего уровня трансформации в схеме клиента. Это сузило проблему до внутреннего pipeline — пути binding через сервис Images.</li><li><b>Инструментирование посредника.</b> Мы добавили инструментирование в посредник, чтобы измерять размеры тел перед пересылкой ответа. Тела уже были обрезаны к моменту выхода из сервиса Images, так что посредник был исключён.</li><li><b>Углублённая трассировка внутри Images.</b> На уровне сервиса запрос обрабатывался, изображение корректно кодировалось, и ответ отправлялся с HTTP 200.</li></ul><p>Единственный постоянный сигнал заключался в том, что баг зависел от тайминга: он появлялся только на продакшен-пути, при реальной конкурентности и только для больших изображений.</p><h2>Зерно истины</h2><p>Инструменты отладки на уровне приложения показывали лишь то, что система <i>считала</i>, что делает. Но по мнению системы всё было в порядке: трассировка утверждала, что ответ отправлен; логи не сообщали об ошибках; сервис Images возвращал 200 на каждый запрос.</p><p>Чтобы увидеть, что система делала на самом деле, мы подключили strace к сервису Images. strace записывает системные вызовы, которые процесс делает ядру; это позволило показать, какие именно байты были записаны, когда вызывался shutdown и посылал ли клиент сигнал завершения.</p><p>Настройка трассировки была деликатной. strace работает, перехватывая системные вызовы по мере их выполнения, что добавляет небольшие накладные расходы по времени к каждому вызову. Фильтрация узкого набора системных вызовов держала эти накладные расходы минимальными. Однако расширение фильтра замедляло процесс ровно настолько, чтобы сдвинуть тайминг между flush и проверкой shutdown — и баг полностью исчезал. Одно это уже подкрепляло теорию о тайминг-зависимости проблемы.</p><p>Используя воркер-репродукцию, мы спровоцировали баг и сравнили вывод системных вызовов между успешными и упавшими запросами.</p><p>При успешном запросе ответ пишется кусками по мере освобождения сокетного буфера, а shutdown вызывается только после отправки всех данных. Например, это может выглядеть так:</p><p>Когда мы воспроизвели баг, упавший запрос выглядел так:</p><p>Здесь есть только одна запись — лишь заголовки и крошечная часть тела — перед немедленным вызовом shutdown. Из ответа в 14,9 МБ было отправлено около 219 КБ. Оставшиеся ~14,8 МБ данных изображения никогда не покидали внутренний буфер hyper, и не было никакого сигнала завершения от клиента между записью и shutdown. Вместо этого сервис Images преждевременно закрывал соединение самостоятельно, искренне полагая, что работа завершена.</p><p>Упавшие запросы подтвердили, что баг — состояние гонки, которое срабатывало непостоянно. Успех или провал зависели от того, перекрывались ли операции flush и shutdown, и это менялось от запроса к запросу. Когда буфер был полон в тот самый момент, когда hyper решил, что соединение завершено, данные терялись.</p><p>Когда читатель потребляет медленнее, чем hyper пишет, исходящий буфер заполняется. Если hyper закрывает соединение до того, как буфер опустеет, то лишь часть ответа попадает к посреднику; эти неполные данные пересылаются обратно в Workers runtime и клиенту.</p><p>Перестройка в декабре не ввела этот баг — он существовал в hyper годами в нескольких мажорных версиях. Но новый посредник изменил того, кто читал ответ на другом конце сокета. Наша рабочая теория: прежний посредник FL потреблял данные достаточно быстро, чтобы сокетный буфер редко заполнялся во время ответа. Новый читатель работал в темпе, который иногда позволял буферу заполняться при больших ответах.</p><p>Этих нескольких миллисекунд обратного давления, внесённых улучшением, которое ускорило всё остальное, хватило, чтобы выявить изъян, который скрывался на виду.</p><h2>Внутри цикла dispatch</h2><p>Жизненный цикл HTTP/1-соединения в hyper управляется конечным автоматом в файле под названием dispatch.rs. Он выполняет цикл, который читает запросы, пишет ответы, сбрасывает буфер записи в сокет и решает, когда закрываться. В упрощённом виде:</p><p>Точнее, именно let _ перед poll_flush — это место, где живёт баг.</p><p>В Rust let _ = expr отбрасывает результат выражения, включая Poll::Pending — сигнал о том, что flush ещё не завершён. В буфере flush может остаться несколько мегабайт, но цикл об этом никогда не узнаёт.</p><p>Когда запрос падает, последовательность событий выглядит так:</p><ol><li>Сервис Images завершает кодирование изображения и передаёт весь ответ hyper как один блок в памяти.</li><li>Hyper записывает блок во внутренний буфер и помечает состояние записи как Writing::Closed. С точки зрения кодирования работа сделана — кодировать больше нечего.</li><li>Hyper вызывает poll_flush, чтобы перенести буферизованные данные в сокет. В нашем примере сокет принял около 219 КБ. Оставшиеся ~14,8 МБ остаются в буфере hyper. Сокет полон, поэтому ядро возвращает Poll::Pending.</li><li>poll_loop отбрасывает Poll::Pending с помощью let _.</li><li>Он проверяет wants_read_again(). Полный запрос уже получен, поэтому возвращается false.</li><li>poll_loop возвращает Poll::Ready(Ok(())), сигнализируя, что цикл завершён, хотя flush ещё не сделан.</li><li>Срабатывает poll_shutdown(). Выполняется системный вызов SHUT_WR.</li><li>Клиент получает 219 КБ и EOF (end-of-file), указывающий, что соединение закрыто, хотя он ожидает 14,9 МБ.</li></ol><p>На втором шаге hyper помечает операцию записи как завершённую, как только тело ответа оказывается в буфере (то есть когда кодирование закончено), а не когда данные фактически сброшены. В большинстве случаев flush завершается за один проход, и это различие незаметно. В редких случаях, когда сокетный буфер полон, flush приходится ждать — но hyper не ждёт. Байты всё ещё сидят в буфере hyper, ожидая сброса в сокет. Hyper при этом закрывает соединение с этими данными всё ещё в буфере.</p><p>Это также объясняет, почему curl никогда не воспроизводил баг. Curl читает данные так быстро, как они приходят: сокетный буфер никогда не заполняется, flush всегда завершается мгновенно, и отброшенное возвращаемое значение безобидно. Продакшен-путь с читателем, который иногда паузил на несколько миллисекунд, был единственной конфигурацией, где буфер заполнялся в нужный момент.</p><h2>Не забывайте сбрасывать буфер</h2><p>После недель расследования само исправление было концептуально простым. Hyper должен был проверять, завершён ли flush, прежде чем двигаться дальше.</p><p>Наш reproduction-воркер подтвердил, что баг существует, но не мог объяснить, почему падает конкретный запрос. Прежде чем писать исправление, нам нужен был тест, который мог бы спровоцировать точные сокетные условия внутри hyper.</p><p>Мы знали условия, вызывающие баг: сокет, который принимает один кусок данных, а затем блокируется. Для контролируемого сценария мы построили обёртку вокруг TCP-потока, имитирующую полный сокетный буфер. Обёртка принимала 8 КБ при первой записи, а затем возвращала Poll::Pending на каждой последующей записи, имитируя читателя, который перестал опустошать буфер.</p><p>Тест отправлял 500 КБ ответа через этот ограниченный сокет и проверял, вызывает ли hyper shutdown, пока в буфере остаётся 492 КБ. Без исправления — вызывал. С исправлением — ждал.</p><p>Сначала мы применили исправление в цикле dispatch hyper. Вместо отбрасывания результата poll_flush мы проверяли, завершён ли flush на самом деле:</p><p>Если flush не завершён, цикл возвращает Poll::Pending асинхронному runtime. Runtime ждёт, пока сокет не станет доступен для записи, а затем будит задачу, чтобы продолжить flush. Соединение закрывается только после того, как все данные отправлены.</p><p>Когда мы выкатили это исправление, мы увидели, что записан каждый байт, а shutdown вызывался только после того, как буфер действительно опустел. Клиент, который сделал первый репорт, тоже подтвердил, что проблема исчезла.</p><p>Хотя первоначальное решение работало, цикл dispatch был неправильным местом для исправления. Ранний возврат Poll::Pending мог замедлять другие операции на том же соединении, уменьшая частоту опроса чтения и вызывая нежелательное обратное давление. Также это корректно не обрабатывает keepalive-соединения, где одно соединение обрабатывает несколько запросов подряд — они должны оставаться пригодными к использованию, даже пока предыдущий ответ всё ещё сбрасывается. Ни одна из этих проблем не затрагивала наш сервис (где keepalive отключён), но обе могли повлиять на других пользователей hyper, если бы исправление было предложено upstream.</p><p>Мы проследили жизненный цикл соединения hyper и нашли более точечный подход. Вместо изменения поведения цикла dispatch мы применили исправление в том месте, где shutdown вызывается на самом деле. Перед закрытием сокета hyper должен сначала сбросить оставшиеся данные в буфере:</p><p>Это оставляет цикл dispatch без изменений. Flush добавляется только в тот точный момент, где иначе произошла бы потеря данных — непосредственно перед shutdown.</p><h2>Что осталось с нами</h2><p>Ни один из инструментов на уровне приложения не выдавал ошибок, падений или полезных записей в логе. Наблюдаемость на уровне приложения может иметь слепое пятно для багов, которые живут ниже её уровня осознанности.</p><p>Сбой происходил непостоянно, масштабировался с размером ответа, не воспроизводился простыми инструментами вроде curl и исчезал, когда мы наблюдали за системой внимательнее. Эти сигналы указывали на тайминг-зависимый баг в слое соединения, а не в логике приложения.</p><p>Прорыв случился благодаря инструментарию уровня ядра — strace, единственному слою, который фиксирует, что на самом деле происходило на сокете. Базовый баг жил в нескольких миллисекундах между частичным flush и преждевременным shutdown — окне, которое открылось только после того, как мы ускорили систему.</p><p>Мы влили исправление и детерминированный тест в hyperium/hyper через PR #4018. Оно появится в будущем релизе hyper, гарантируя, что любой сервис, использующий HTTP/1-реализацию hyper, не потеряет данные ответа из-за того же состояния гонки.</p><p>Пока мы используем внутренний форк с применённым патчем. Это исправление стабилизировало архитектуру binding, создав надёжную основу для расширения его функциональности.</p><p>Изначально Images binding покрывал только трансформации удалённых изображений. В начале этого месяца мы объявили, что Images binding теперь поддерживает операции для hosted-изображений, давая разработчикам единый способ строить медиа-насыщенные приложения на Cloudflare.</p><p>Подробнее о том, как работает binding, — в нашей <a href="https://developers.cloudflare.com/images/worker-bindings/">документации</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare запустила временные аккаунты для ИИ-агентов</title>
      <link>https://tproger.ru/news/vremennye-akkaunty-cloudflare-dlya-ii-agentov</link>
      <comments>https://tproger.ru/news/vremennye-akkaunty-cloudflare-dlya-ii-agentov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/vremennye-akkaunty-cloudflare-dlya-ii-agentov</guid>
      <description><![CDATA[<p>Cloudflare запустила временные аккаунты для ИИ-агентов: деплой Worker через wrangler deploy --temporary без регистрации. Узнайте, как забрать аккаунт.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/vremennye-akkaunty-cloudflare-dlya-ii-agentov">Cloudflare запустила временные аккаунты для ИИ-агентов</a>»</p>]]></description>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 20 Jun 2026 05:31:06 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloudflare запустила временные аккаунты для ИИ-агентов. Теперь агент может задеплоить Worker командой wrangler deploy --temporary без регистрации, а пользователь сможет забрать аккаунт в течение 60 минут.</p><p>Сегодня многие пишут код с помощью ИИ-агентов. Но стоит агенту понадобиться что-то задеплоить — а для этого зарегистрироваться и создать аккаунт, — он сталкивается с интерфейсами, рассчитанными на людей: браузерный OAuth-флоу, дашборд, по которому надо кликать, API-токен, который нужно скопировать и вставить, запрос многофакторной аутентификации. Для фонового агента это жёсткий стоп.</p><p>Новая функция убирает этот барьер: агенты теперь могут сразу деплоить сайты, API и агентов, не регистрируя аккаунт.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-06-20/f0d1ffd9-a277-4618-86fb-a62bd6eb4400.webp" alt="Временные аккаунты Cloudflare для агентов" /></figure><p>Любой агент теперь может выполнить wrangler deploy --temporary и задеплоить Worker в Cloudflare. Временное развёртывание остаётся живым 60 минут, в течение которых вы можете забрать временный аккаунт и сделать его своим навсегда. Если нет — он истечёт сам.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-06-20/4e364559-2970-440a-94af-de4c68b93d19.webp" alt="Пример команды wrangler deploy --temporary" /></figure><ul><li>Cloudflare запустила временные аккаунты для ИИ-агентов.</li><li>Любой агент может выполнить wrangler deploy --temporary и задеплоить Worker без регистрации.</li><li>Временное развёртывание живёт 60 минут; за это время аккаунт можно забрать навсегда.</li><li>Wrangler подсказывает агенту флаг --temporary, если тот ещё не аутентифицирован.</li><li>Агент может итерировать код и перезаливать его в том же 60-минутном окне.</li></ul><h2>Почему бесшовные развёртывания важны для ИИ-агентов</h2><p>Бесшовные временные аккаунты важнее, чем может показаться на первый взгляд:</p><ul><li>Фоновые ИИ-сессии работают без человека в цикле и становятся нормой. Любой шаг аутентификации, требующий браузера, копирования-вставки или «кликните здесь в течение 60 секунд», означает, что агент застрянет и может решить деплоить куда-то ещё.</li><li>Пробовать и ошибаться — суперсила агента. Агентам нужен короткий цикл «написал → задеплоил → проверил». Им нужны дешёвые одноразовые цели для развёртывания, чтобы они могли сделать curl на свой вывод и решить, получилось ли правильно.</li><li>Платформы для агентов строят собственные способы, чтобы деплой кода «просто работал» без лишних шагов и учётных данных. Пользователи начинают ожидать, что процесс работает без необходимости регистрироваться в других сервисах, которыми они раньше не пользовались и о которых не слышали.</li></ul><h2>Как это работает</h2><p>Временные аккаунты построены вокруг <a href="https://developers.cloudflare.com/workers/wrangler/" rel="noopener noreferrer">Wrangler</a> — инструмента командной строки (CLI) для платформы разработчиков Cloudflare, который позволяет создавать новые проекты, управлять их конфигурациями и ресурсами, а также деплоить и обновлять их.</p><p>Использование Wrangler широко <a href="https://developers.cloudflare.com/workers/examples/" rel="noopener noreferrer">документировано</a>, и агенты очень хорошо умеют с ним работать. Но если агент ещё не аутентифицирован в Cloudflare, то при попытке деплоя он застрянет на шаге регистрации и аутентификации. Чтобы решить эту проблему, Cloudflare обновила Wrangler: теперь CLI подсказывает агенту сообщение о флаге --temporary.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-06-20/ea998151-5429-4387-a20a-47bb21d07ef6.webp" alt="Подсказка Wrangler о флаге --temporary" /></figure><p>Когда агент это обнаруживает и снова запускает wrangler deploy с флагом --temporary, Cloudflare подготавливает временный аккаунт для использования агентом, выдаёт Wrangler API-токен и предоставляет claim URL, который агент может передать человеку.</p><h2>Как забрать аккаунт</h2><p>В любой момент вы можете забрать временный аккаунт и сделать его своим навсегда. Когда вы нажмёте на claim-ссылку, попадёте на страницу, где можно зарегистрироваться или войти в Cloudflare, а затем забрать временный аккаунт, на который был задеплоен ваш Worker. Это включает не только Workers, но и ресурсы вроде баз данных и других bindings.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-06-20/5e5d1e15-1b7b-4cb0-8702-10fc8247a200.webp" alt="Страница claim аккаунта Cloudflare" /></figure><p>Если вы не заберёте эти временные аккаунты в течение 60 минут, они будут автоматически удалены.</p><h2>Контекст и ограничения</h2><p>Это лишь один из способов убрать барьер регистрации для агентов. Недавно Cloudflare <a href="https://blog.cloudflare.com/agents-stripe-projects/" rel="noopener noreferrer">объявила о партнёрстве со Stripe</a> и о новом протоколе, который позволяет агентам провижионить Cloudflare от имени пользователей — создавать аккаунт, оформлять подписку, регистрировать домен и получать API-токен для деплоя кода, без копирования токенов и ввода данных кредитной карты. В прошлом месяце Cloudflare вместе с WorkOS запустила <a href="https://workos.com/auth-md" rel="noopener noreferrer">auth.md</a>, который может принять любой желающий, чтобы агенты могли создавать новые аккаунты с помощью устоявшихся стандартов OAuth.</p><p>У временных аккаунтов есть ограничения, и их возможности могут меняться со временем; подробности — в <a href="https://developers.cloudflare.com/workers/platform/claim-deployments/" rel="noopener noreferrer">документации для разработчиков</a>.</p><p>Направьте своего агента на Cloudflare, посмотрите, как далеко он зайдёт, и расскажите, что можно улучшить или что вас порадовало — поделитесь созданным в <a href="https://x.com/CloudflareDev" rel="noopener noreferrer">X</a> или загляните в <a href="https://community.cloudflare.com/" rel="noopener noreferrer">сообщество Cloudflare</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare приобрела VoidZero — создателей Vite, Vitest и Rolldown</title>
      <link>https://tproger.ru/news/cloudflare-poglotila-voidzero-sozdatelej-vite-vitest-i-rolldo</link>
      <comments>https://tproger.ru/news/cloudflare-poglotila-voidzero-sozdatelej-vite-vitest-i-rolldo?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cloudflare-poglotila-voidzero-sozdatelej-vite-vitest-i-rolldo</guid>
      <description><![CDATA[<p>Cloudflare приобрела компанию VoidZero, стоящую за Vite, Vitest, Rolldown и Oxc. Проекты сохранят открытую лицензию MIT и независимость. Разбираем детали</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cloudflare-poglotila-voidzero-sozdatelej-vite-vitest-i-rolldo">Cloudflare приобрела VoidZero — создателей Vite, Vitest и Rolldown</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 05 Jun 2026 11:19:42 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы используете Vite — ничего не сломается, но вот что изменится в долгосрочной перспективе. 4 июня 2026 года Cloudflare <a href="https://blog.cloudflare.com/voidzero-joins-cloudflare/" rel="noopener">объявила</a> о приобретении VoidZero — компании, основанной создателем Vue.js Эваном Ю и стоящей за ключевыми инструментами JavaScript-экосистемы: <b>Vite</b>, <b>Vitest</b>, <b>Rolldown</b>, <b>Oxc</b> и <b>Vite+</b>. Сделка означает, что вся команда VoidZero переходит в Cloudflare, но сами проекты останутся открытыми, независимыми и под лицензией MIT.</p><p>Cloudflare приобрела VoidZero — компанию-основателя Vite, Vitest, Rolldown, Oxc и Vite+.</p><p>Вся команда VoidZero переходит в Cloudflare, включая Эвана Ю.</p><p>Проекты сохраняют открытый исходный код, лицензию MIT и независимость от поставщика.</p><p>Cloudflare выделяет $1 млн на фонд экосистемы Vite для поддержки сопровождающих.</p><p>Vite набирает около 129 млн загрузок в неделю; плагин Cloudflare для Vite — 14 млн.</p><p>Дашборд Cloudflare уже работает на Vite, а CLI компания переведёт на него в будущем.</p><p>VoidZero появилась как попытка собрать в единую экосистему наиболее востребованные инструменты фронтенд-разработки. Vite — система сборки, ставшая фактическим стандартом для современных JavaScript-приложений. Vitest отвечает за тестирование, Rolldown заменяет Rollup на Rust, а Oxc — это платформа инструментов для JavaScript/TypeScript на Rust, включающая компилятор, линтер Oxlint, форматировщик и другие компоненты.</p><p>Cloudflare подчёркивает, что не собирается перекраивать планы развития проектов под свои нужды. По аналогии с <a href="https://blog.cloudflare.com/astro-joins-cloudflare/" rel="noopener">приобретением Astro</a> ранее в этом году, команды сохраняют автономию, а код остаётся открытым. Главное отличие в том, что Vite — это не просто фреймворк, а фундамент, на котором строятся Vue, SvelteKit, Nuxt, Astro, Solid, Qwik, Angular, React Router, TanStack Start и даже Next.js — в экспериментальном проекте vinext.</p><h2>Что меняется для разработчиков</h2><p>В краткосрочной перспективе — ничего. Vite, Vitest, Rolldown, Oxc и Vite+ продолжат развиваться по прежним планам. Эван Ю и команда VoidZero остаются лидерами проектов. Cloudflare обещает направлять инженерные ресурсы на развитие инструментов, а не на их смену бренда или закрытие.</p><p>В долгосрочной перспективе Cloudflare намерена построить собственный CLI cf поверх Vite. Цель — чтобы команды cf dev, cf build и cf deploy чувствовали себя как расширение привычного vite dev. Это должно упростить развёртывание Vite-приложений на платформу Cloudflare Workers, сохранив при этом переносимость кода между любыми хостингами.</p><h2>Почему это важно</h2><p>Vite сегодня — один из немногих инструментов, которые объединяют всю JavaScript-экосистему. По данным Cloudflare, Vite набирает <b>129 млн загрузок в неделю</b>, а официальный плагин @cloudflare/vite-plugin — <b>14 млн</b>. С ростом ИИ-агентов, которые генерируют код и выполняют итерации с ним в цикле, скорость сборки, тестирования и линтинга становится критичной. Весь стек VoidZero оптимизирован для таких сценариев: Rust-инструменты работают на порядок быстрее аналогов на JavaScript.</p><p>Кроме того, Cloudflare выделяет <b>$1 млн</b> в фонд экосистемы Vite. Деньги пойдут на поддержку сопровождающих и участников — администрировать фонд будет ядро команды Vite. Это редкий случай, когда крупная инфраструктурная компания инвестирует напрямую в открытый исходный код, не пытаясь монополизировать его.</p><h2>Выводы</h2><p>Приобретение VoidZero — значимый корпоративный вклад в открытую инфраструктуру JavaScript. Cloudflare получает влияние на инструмент, который используют миллионы разработчиков, а сообщество — гарантии независимости и $1 млн на развитие экосистемы.</p><p>Для разработчиков практических изменений в ближайшие месяцы не предвидится: команды — на месте, а плагин для Cloudflare продолжит развиваться. Долгосрочная ставка — на унификацию CLI и углубление интеграции Vite с пограничной платформой Cloudflare.</p><p>Источник: <a href="https://blog.cloudflare.com/voidzero-joins-cloudflare/" rel="noopener">Cloudflare Blog — VoidZero is joining Cloudflare</a></p><p>Хотите попробовать Vite на Cloudflare прямо сейчас — выполните npm create vite@latest, а затем npx wrangler deploy.</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare переписала Next.js за $1 100: как ИИ сломал модель коммерческого open source</title>
      <link>https://tproger.ru/translations/cloudflare-perepisala-next-js-za-1-100-kak-ii-slomal-model-ko</link>
      <comments>https://tproger.ru/translations/cloudflare-perepisala-next-js-za-1-100-kak-ii-slomal-model-ko?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/cloudflare-perepisala-next-js-za-1-100-kak-ii-slomal-model-ko</guid>
      <description><![CDATA[<p>Cloudflare за неделю создала vinext — замену Next.js на Vite. Один инженер и $1 100 на токены ИИ. Разбираем технику vinext и последствия для open source.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/cloudflare-perepisala-next-js-za-1-100-kak-ii-slomal-model-ko">Cloudflare переписала Next.js за $1 100: как ИИ сломал модель коммерческого open source</a>»</p>]]></description>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[React]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 10 May 2026 06:02:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloudflare потратила одну рабочую неделю и $1 100 на токены ИИ, чтобы переписать Next.js — один из самых сложных web-фреймворков с десятилетней историей. Инструмент получил название vinext, работает на Vite вместо проприетарного Turbopack и разворачивается в Cloudflare Workers одной командой. Этот эксперимент ставит под вопрос фундамент, на котором стоят коммерческие open source-компании.</p><p>Разбираем ситуацию по материалу <a href="https://blog.pragmaticengineer.com/the-pulse-cloudflare-rewrites-next-js-as-ai-rewrites-commercial-open-source/">Pragmatic Engineer</a> — охватывает технические подробности vinext, экономику и последствия для коммерческого open source.</p><p>Cloudflare выпустила <b>vinext</b> — замену Next.js на базе Vite, которая деплоится в Cloudflare Workers одной командой.</p><p>Один инженер + ИИ-агент OpenCode + Opus 4.5 = одна рабочая неделя вместо <b>нескольких лет</b> инженерного труда.</p><p>По заявлению Cloudflare: сборка до <b>4 раз быстрее</b>, клиентские бандлы на <b>57% меньше</b>.</p><p>vinext покрывает <b>94% API Next.js</b>, но официально экспериментальна: не прошла нагрузочного тестирования.</p><p>ИИ удешевил переписывание сложного ПО примерно в <b>100 раз</b> — под угрозой оказались проприетарные «рвы» коммерческих open source-проектов.</p><p>Vercel ($9 млрд оценка) потеряла ключевое конкурентное преимущество: уникальный формат билда Next.js.</p><h2>Next.js и Vercel: как устроен коммерческий «ров»</h2><p>Next.js — самый популярный полностековый React-фреймворк. По данным Stack Overflow Developer Survey 2025, его используют около половины разработчиков на React. Проект открытый, но содержится преимущественно силами <a href="https://vercel.com">Vercel</a>.</p><p>Хитрость в том, что Next.js собирает проекты с помощью <b>Turbopack</b> — опционального инструмента Vercel, написанного на Rust (используется прежде всего в dev-режиме). Результат сборки — проприетарный, недокументированный формат. Инженер Netlify Эдуардо Боукаш объяснял это так:</p><blockquote>Формат вывода сборки Next.js является проприетарным и недокументированным — он используется в деплоях Vercel для инициализации нужной инфраструктуры. Это означает, что любые другие хостинг-провайдеры вынуждены опираться на недокументированные API, которые могут менять поведение без предупреждения в минорных и патч-релизах.</blockquote><p>В итоге сложилась система: Next.js бесплатен и открыт, но наилучший опыт разворачивания — только на Vercel. Альтернативные провайдеры вынуждены угадывать поведение недокументированного формата. Это умная стратегия, превращающая open source-проект в воронку монетизации.</p><p>Чтобы сломать эту схему, нужно заменить Turbopack на стандартный инструмент — например, <b>Vite</b>, который лидирует в экосистеме JS по данным State of JS 2025. Именно это и сделал Cloudflare.</p><h2>Что такое vinext и как его создали</h2><p>Идея проста: убрать Turbopack, поставить Vite, сделать так, чтобы приложения на Next.js собирались в стандартный формат и деплоились на любой платформе — в том числе на Cloudflare Workers.</p><p>Cloudflare публично заявила, что на это ушла одна рабочая неделя одного инженера, который использовал агент <a href="https://opencode.ai">OpenCode</a> (open source coding agent) совместно с моделью Claude Opus 4 (в источнике — «Claude Opus 4 (в источнике — «Opus 4.5»)»; такой модели в публичном портфеле Anthropic нет, по всей видимости имеется в виду Opus 4):</p><blockquote>На прошлой неделе один инженер и модель ИИ с нуля пересобрали самый популярный front-end фреймворк. Результат — vinext (произносится «ви-некст»): drop-in замена Next.js на Vite, которая деплоится в Cloudflare Workers одной командой. В ранних бенчмарках сборка production-приложений ускорилась до 4 раз, а клиентские бандлы уменьшились до 57%. И у нас уже есть клиенты, которые запустили его в production. Вся работа обошлась примерно в $1 100 на токены.</blockquote><p>Ядро Next.js за 10 лет выросло примерно до 194 000 строк кода. vinext занимает около 67 000 строк — более компактная реализация, которая не поддерживает устаревшие API и охватывает 94% публичного API Next.js. Оставшиеся 6% — сложные граничные случаи.</p><h3>Что именно сделал Cloudflare</h3><ul><li>Взял публичный API Next.js</li><li>Переписал поведение через Vite</li><li>Создал формат вывода сборки, совместимый с поведением оригинала</li><li>Добавил <b>Agent Skill</b> для миграции существующих Next.js-проектов одной командой</li></ul><p>Миграционный скилл — отдельная деталь, показательная для эпохи ИИ. Он работает с Claude Code, OpenCode, Cursor, Codex и другими агентами:</p><p>Cloudflare не только использовала ИИ для создания vinext, но и встроила ИИ в процесс его распространения — чтобы миграция клиентских проектов тоже была автоматической.</p><h2>ИИ делает «невозможное» тривиальным</h2><p>До появления современных ИИ-агентов переписать Next.js «с нуля» было теоретически возможным, но практически исключённым. Это требовало бы многолетних усилий команды инженеров. При этом сообщество сомневалось бы в долгосрочной поддержке любого форка — Vercel доказывала свою надёжность 10 лет, а любой новый игрок не имеет этого кредита доверия.</p><p>Теперь ситуация изменилась. По оценке Pragmatic Engineer, ИИ ускорил создание vinext примерно в <b>100 раз</b>. Cloudflare завершила проект, измеряемый в инженерных годах, за одну инженерную неделю.</p><p>Важно, что всеобщий рост продуктивности от ИИ в среднем куда скромнее. По данным The Pragmatic Summit (Сан-Франциско, 2026), самооценка разработчиков даёт около 10% прироста. Ключевое условие для 100-кратного ускорения — наличие <b>полного тестового покрытия</b>, которое позволяет ИИ-агентам верифицировать каждый шаг.</p><blockquote>ИИ во много раз эффективнее на «механических» задачах, где корректность можно проверить тестами, по сравнению с открытыми задачами или теми, что требуют творчества.</blockquote><p>Сам факт, что Next.js имеет исчерпывающее тестовое покрытие — это одновременно его сила и слабость: ИИ использовал тест-сюит как спецификацию для переписывания. Cloudflare даже поблагодарила команду Vercel в объявлении:</p><blockquote>Мы хотим отметить команду Next.js. То, что их API хорошо задокументирован, а тест-сюит настолько полный, — один из главных факторов, которые сделали этот проект возможным.</blockquote><h2>Качество под вопросом: экспериментальность vs маркетинг</h2><p>Cloudflare открыла своё объявление сильным тезисом: «клиенты уже запустили в production». Vercel немедленно указала на уязвимости в безопасности, а CEO Гильермо Рауч связал проект со стереотипом «вайб-кодинга» — небрежной работы без понимания деталей.</p><p>Претензия оказалась обоснованной: важная деталь про «production» была закопана в тысяче слов после начала объявления:</p><blockquote>Мы хотим быть честными: vinext экспериментален. Ему ещё нет недели, и он не прошёл реального нагрузочного тестирования. (...) Мы работаем с National Design Studio на одном из их <b>бета-сайтов</b>, CIO.gov.</blockquote><p>«Клиент в production» у Cloudflare — это бета-сайт без значимого трафика. Это нетипично для компании, обычно отличающейся точностью формулировок. Vercel имела право поднять вопрос безопасности.</p><p>Тем не менее это не отменяет главного вывода: ИИ способен снизить стоимость разработки примерно в 100 раз и выдать работоспособный результат за приемлемую сумму. Доработка безопасности и надёжности потребует дополнительного времени — но это уже другой разговор.</p><h2>Новая угроза для коммерческого open source</h2><p>Cloudflare и Vercel — известные соперники в борьбе за платформу разработчиков. CEO обеих компаний регулярно обмениваются ударами в публичном пространстве.</p><p>Но реальная ставка здесь — бизнес-модель коммерческого open source. Стратегия Vercel была классической:</p><ol><li>Создать и поддерживать Next.js, обеспечив лучший developer experience.</li><li>Оптимизировать Vercel под специфический (и недокументированный) формат вывода Next.js.</li><li>Большинство разработчиков, выбравших Next.js, деплоят на Vercel — ради лучшей интеграции.</li><li>Повторять годами, пока бизнес не оценят в $9 млрд (оценка октября 2025 года).</li></ol><p>В основе стратегии лежали два предположения: (1) переписать Next.js дорого и (2) даже если кто-то это сделает, разработчики усомнятся в жизнеспособности альтернативы. ИИ обнулил оба предположения.</p><h3>Аналогия с WordPress и WP Engine</h3><p>Похожая история произошла с WordPress и WP Engine в 2024 году. WP Engine «пиратила» усилия Automattic: почти не вкладывалась в R&amp;D, зато продавала WordPress как managed service — дешевле, чем Automattic, тратящая на разработку сотни миллионов.</p><p>Разница в том, что Vercel удавалось избегать «фрирайдеров» — благодаря проприетарному формату билда. Теперь этого барьера больше нет: Cloudflare будет синхронизировать каждое обновление Next.js с vinext через ИИ-агентов, и это не потребует серьёзных инвестиций.</p><h2>Как защититься: стратегии для коммерческих open source-проектов</h2><p>Если ИИ позволяет конкурентам тривиально переписать ваш продукт, каковы варианты защиты?</p><h3>Закрыть тест-сюит</h3><p>Один из очевидных ответов — сделать тесты приватными. SQLite, например, держит свой наиболее полный тест-сюит (TH3) закрытым и продаёт доступ к нему как сервис. Open source-проект для визуального редактирования tldraw объявил о переносе тестов в закрытый репозиторий (хотя потом оказалось, что это была шутка).</p><p>Саймон Виллисон прокомментировал тренд:</p><blockquote>За последние несколько месяцев стало очевидно, что полный тест-сюит достаточен для написания совершенно новой реализации любой open source-библиотеки с нуля — потенциально на другом языке.</blockquote><h3>Другие варианты защиты</h3><ul><li><b>Уменьшить open core, увеличить закрытую часть.</b> Перенести расширенные сервисы из source available в полностью закрытый код.</li><li><b>Профессиональный support.</b> ИИ может повысить качество поддержки при правильном применении — а это сложно скопировать.</li><li><b>Живое сообщество.</b> Meetup'ы и реальная аудитория создают связь, которая выходит за рамки кода. Трудно представить встречи vinext-пользователей — а встречи Next.js-разработчиков уже существуют.</li><li><b>Инфраструктура как ров.</b> В мире, где ПО легко скопировать, владение и управление инфраструктурой становится важнейшим преимуществом: меньшая задержка, выше надёжность, лучшая цена.</li></ul><h2>Что это значит для индустрии</h2><p>Для не-коммерческого open source перспективы выглядят иначе. ИИ упрощает создание и поддержку форков, перенос проектов на другие языки и добавление новых функций. Это может означать расцвет открытых проектов, которые не зависят от коммерческой логики.</p><p>С другой стороны, появится класс «миграционных агентов», которые провайдеры будут создавать для перетягивания клиентов. Cloudflare уже встроила такой агент в vinext. Это «AI-native» стратегия захвата рынка, которую скопируют другие.</p><p>Конкуренция в технологической индустрии становится жёстче и быстрее. По словам Laura Tacho с The Pragmatic Summit:</p><blockquote>ИИ — это ускоритель, мультипликатор, и он движет организации в разных направлениях.</blockquote><p>В частном случае vinext — пока неясно, насколько популярным он станет и насколько глубок «ров» Vercel вокруг экосистемы Next.js в целом. Переписать фреймворк — не то же самое, что стать жизнеспособной платформой-as-a-service. Доверие, стабильность, поддержка и developer experience накапливались 10 лет.</p><h2>Выводы</h2><p>Cloudflare переписала Next.js не из любви к open source, а чтобы разрушить конкурентное преимущество Vercel. Это честная бизнес-война. Но побочный эффект оказался важнее самого конфликта: стало ясно, что ИИ-агенты превращают переписывание сложного ПО из многолетней инвестиции в задачу одной недели.</p><p>Для разработчиков это хорошая новость: экосистема Next.js получила стандартизированный формат сборки, а деплой на разные платформы станет проще. Для компаний, строящих бизнес на коммерческом open source, — сигнал тревоги: проприетарные технические «рвы» больше не защищают так, как раньше.</p><p>Что по-настоящему защищает — живое сообщество, инфраструктура мирового класса, качество поддержки и репутация, накопленная годами. vinext может стать удобной альтернативой деплоя. Но стать полноценной заменой экосистемы Next.js — задача несравнимо более сложная.</p><p>Как вы оцениваете угрозу, которую ИИ создаёт для коммерческого open source? Читайте также: <a href="https://tproger.ru/">другие материалы об ИИ и open source на tproger.ru</a>.</p><p>Источники: <a href="https://blog.pragmaticengineer.com/the-pulse-cloudflare-rewrites-next-js-as-ai-rewrites-commercial-open-source/">Pragmatic Engineer — The Pulse</a>; <a href="https://blog.cloudflare.com/vinext/">Cloudflare блог — объявление vinext</a>; State of JS 2025.</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare включила постквантовое шифрование в IPsec на гибридном ML-KEM</title>
      <link>https://tproger.ru/translations/post-quantum-ipsec-v-cloudflare-hybrid-ml-kem-dobralsya-do-ga</link>
      <comments>https://tproger.ru/translations/post-quantum-ipsec-v-cloudflare-hybrid-ml-kem-dobralsya-do-ga?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/post-quantum-ipsec-v-cloudflare-hybrid-ml-kem-dobralsya-do-ga</guid>
      <description><![CDATA[<p>Cloudflare 30 апреля 2026 включила hybrid ML-KEM (FIPS 203) в IPsec в режиме general availability. Совместимо с Cisco 8000 26.1.1+ и Fortinet FortiOS 7.6.6+.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/post-quantum-ipsec-v-cloudflare-hybrid-ml-kem-dobralsya-do-ga">Cloudflare включила постквантовое шифрование в IPsec на гибридном ML-KEM</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 07 May 2026 13:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если у вас site-to-site VPN на железе Cisco 8000 или Fortinet FortiGate, и оно ходит в Cloudflare через IPsec — вы уже можете перевести туннели в post-quantum режим. 30 апреля 2026 Cloudflare объявила general availability <b>hybrid ML-KEM</b> в своём IPsec-сервисе: новый стандарт IETF (Internet Engineering Task Force, комитет по интернет-стандартам) — draft-ietf-ipsecme-ikev2-mlkem — совместимо тестируется с прошивками Cisco 8000 после 26.1.1 и FortiOS 7.6.6+. Защититься это помогает от атак <i>harvest-now, decrypt-later</i>: трафик собирают сегодня, чтобы расшифровать позже на квантовом компьютере. Это перевод поста Sharon Goldberg и Amos Paul из Cloudflare о том, почему IPsec догнал TLS в post-quantum только сейчас, через 4 года после TLS, — и при чём тут QKD, RFC 9370 и проблема ciphersuite bloat.</p><ul><li><b>Что в GA:</b> hybrid ML-KEM (Module-Lattice-based Key Encapsulation Mechanism — постквантовый алгоритм согласования ключей, стандартизирован NIST как FIPS 203 — федеральный стандарт США по постквантовой криптографии, утверждён в 2024) в Cloudflare IPsec через draft-ietf-ipsecme-ikev2-mlkem. Hybrid — значит, что в одной handshake параллельно идут классический Diffie-Hellman и ML-KEM, а итоговый ключ собирается из обоих.</li><li><b>С каким железом совместимо:</b> Cisco 8000 Series Secure Routers начиная с прошивки 26.1.1; Fortinet FortiOS 7.6.6 и выше. Это <i>branch-коннекторы</i> — устройства в филиалах, которые держат туннель к глобальной сети Cloudflare. Совместимость подтверждена тестированием с production-Cloudflare. Реализация Palo Alto Networks (на базе RFC 9370) пока не работает с Cloudflare — у них своя ciphersuite, выпущенная до появления draft.</li><li><b>Зачем это нужно сейчас:</b> Cloudflare сдвинула цель полного перехода на post-quantum cryptography на <b>2029</b> — после ускорений в квантовом железе. Защищаются прежде всего от атак <i>harvest-now-decrypt-later</i>: злоумышленник копит зашифрованный трафик сейчас, чтобы расшифровать позже, после <i>Q-Day</i> — момента, когда квантовые компьютеры станут достаточно мощными, чтобы сломать классические алгоритмы (RSA, ECDH, ECDSA).</li><li><b>Почему IPsec догнал TLS только сейчас:</b> четыре года разрыва. В TLS hybrid-ключи пошли в production в 2022 (на Cloudflare уже больше двух третей TLS-трафика идут через post-quantum). В IPsec спецификация hybrid ML-KEM появилась только в конце 2025. Часть задержки — споры вокруг QKD (Quantum Key Distribution).</li><li><b>QKD не вариант:</b> национальные службы информбезопасности США (NSA), Германии (BSI) и Великобритании (NCSC) предупреждают: полагаться только на QKD нельзя. Нужно специальное железо и выделенный физический канал, она не работает в масштабах интернета и не закрывает аутентификацию — подробнее — в FAQ.</li></ul><h2>Cloudflare IPsec в одном абзаце</h2><p>Cloudflare IPsec — это WAN-as-a-service (Network-as-a-Service): он заменяет легаси-сетевые архитектуры тем, что подключает дата-центры, филиалы и облачные VPC к глобальной IP Anycast-сети Cloudflare. Клиенты получают упрощённую конфигурацию, high availability (если дата-центр падает, трафик уходит на ближайший живой) и масштаб глобальной сети Cloudflare. Туннели — IPsec, поддерживают site-to-site WAN, исходящие интернет-соединения и подключение к платформе Cloudflare One SASE.</p><h2>Post-quantum в IPsec: hybrid ML-KEM</h2><p>Cloudflare IPsec теперь использует post-quantum encryption через hybrid ML-KEM (FIPS 203), чтобы остановить <i>harvest-now-decrypt-later</i> атаки. Так называют сценарий, когда злоумышленник собирает зашифрованные данные сегодня — а расшифровывает их позже, после <i>Q-Day</i>, когда появятся достаточно мощные квантовые компьютеры, способные сломать классическую public-key криптографию, на которой построена безопасность интернета. Cloudflare пишет, что про эти атаки задумывается всё больше организаций, потому что Q-Day приближается быстрее, чем ожидалось.</p><p>ML-KEM (Module-Lattice-Based Key-Encapsulation Mechanism) — это алгоритм post-quantum криптографии, основанный на математических задачах решёточной криптографии, для которых пока не известно эффективных квантовых атак. Он не требует специального железа или выделенного физического канала: ML-KEM спроектирован так, чтобы его можно было реализовать программно на обычных процессорах и шифровать им сетевой трафик.</p><p>Сам draft-ietf-ipsecme-ikev2-mlkem описывает post-quantum шифрование для IPsec через hybrid ML-KEM: классическая безопасность Diffie-Hellman (хорошо изученная и выдержавшая годы реальных атак) совмещается с post-quantum безопасностью ML-KEM в одном стандартизированном handshake. Конкретно: сначала отрабатывает классический Diffie-Hellman, его выходной ключ шифрует второй обмен с ML-KEM, и выходы обоих обменов подмешиваются в session keys, которые шифруют трафик IPsec data plane через ESP (Encapsulating Security Payload — основной протокол передачи зашифрованных пакетов в IPsec).</p><h2>Совместимость, проверенная на железе</h2><p>Раньше Cloudflare объявляла closed beta своей реализации draft-ietf-ipsecme-ikev2-mlkem — её выкатили в production в IPsec-сервисе и тестировали против эталонной реализации strongSwan (популярный open-source IPsec-стек для Linux). Теперь, после GA, подтверждена совместимость с другими вендорами:</p><ul><li><b>Cisco</b>: клиенты Cisco 8000 Series Secure Routers с прошивкой 26.1.1 и выше могут поднять post-quantum Cloudflare IPsec туннели по draft-ietf-ipsecme-ikev2-mlkem.</li><li><b>Fortinet</b>: клиенты Fortinet FortiOS 7.6.6 и выше могут поднять post-quantum Cloudflare IPsec туннели до глобальной сети Cloudflare по тому же draft.</li></ul><h2>Почему совместимость важна (и почему это болит)</h2><p>Обновить криптографию — задача на годы. Цель Cloudflare 2029 требует концентрированной работы. Поэтому компания надеется, что IPsec-сообщество продолжит фокусироваться на разработке совместимых стандартов вроде draft-ietf-ipsecme-ikev2-mlkem.</p><p>Важность стандартов проще понять на сравнении с TLS. Полная спецификация hybrid ML-KEM для IPsec, draft-ietf-ipsecme-ikev2-mlkem, стала доступна только в конце 2025 года. Это примерно на четыре года позже, чем поддержка hybrid ML-KEM появилась в TLS. (Cloudflare включила hybrid post-quantum key agreement для TLS ещё в 2022, до того как NIST окончательно утвердил стандартизацию ML-KEM, — потому что TLS-сообщество быстро сошлось на одном совместимом подходе и продавило его в production. Сегодня более двух третей человеко-генерированного TLS-трафика к сети Cloudflare защищены hybrid ML-KEM.)</p><p>Четырёхлетнее отставание частично объясняется тем, что IPsec-сообщество долго присматривалось к Quantum Key Distribution (QKD). Механизм её интеграции в IKEv2 (Internet Key Exchange version 2 — протокол согласования ключей IPsec) описан в RFC 8784, опубликованном в 2020 (сам RFC посвящён подмешиванию pre-shared keys в IKEv2 — а такие ключи могут поставляться, в частности, через QKD). Cloudflare уже писала, почему QKD не входит в их post-quantum стратегию: для QKD нужны специализированные устройства и выделенный физический канал между двумя сторонами — а это значит, что в масштабах интернета QKD не работает. Плюс QKD не решает задачу аутентификации, поэтому post-quantum криптография всё равно нужна, чтобы остановить активных атакующих. Найти реализации QKD, которые совместимы между разными вендорами, тоже сложно.</p><p>Американская NSA (National Security Agency), немецкая BSI (Bundesamt für Sicherheit in der Informationstechnik) и британская NCSC (National Cyber Security Centre) — все три национальные службы информбезопасности — предупреждают: нельзя полагаться только на QKD. Post-quantum криптография, в свою очередь, работает на железе, которое у вас и так есть, аутентифицирует обе стороны и работает end-to-end через интернет.</p><h2>RFC 9370 и ciphersuite bloat</h2><p>RFC 9370, опубликованный в 2023, открыл двери post-quantum криптографии в IPsec — он разрешил параллельно с классическим Diffie-Hellman прогонять до семи дополнительных обменов ключами. Однако RFC 9370 не указал, какие именно ciphersuite (наборы криптографических алгоритмов) должны использоваться в этих параллельных обменах. В отсутствие такой спецификации часть вендоров выпустила ранние реализации на базе RFC 9370 ещё до того, как появился draft hybrid ML-KEM, — и определили собственные ciphersuite, в том числе не стандартизированные NIST. Это ровно тот «ciphersuite bloat», от которого предостерегал NIST в SP 800-52 r2. И риск для совместимости проявился на практике: Cloudflare IPsec пока не взаимодействует с реализацией Palo Alto Networks по RFC 9370, потому что та была запущена до появления draft-ietf-ipsecme-ikev2-mlkem.</p><p>Хорошая новость в том, что теперь у нас есть draft-ietf-ipsecme-ikev2-mlkem, который заполняет пробелы RFC 9370 — явно прописывая hybrid ML-KEM как один из механизмов согласования ключей, который можно гонять параллельно с классическим Diffie-Hellman. Cloudflare надеется добавить Palo Alto Networks в список совместимых post-quantum branch-коннекторов по мере того, как индустрия будет консолидироваться вокруг draft-ietf-ipsecme-ikev2-mlkem.</p><p>Но путь к совместимым post-quantum IPsec-стандартам ещё не пройден. draft-ietf-ipsecme-ikev2-mlkem закрывает шифрование. Но IPsec нужны стандарты для post-quantum <b>аутентификации</b> — иначе после Q-Day атакующие смогут проводить активные атаки на живые системы (подменять стороны handshake), даже если шифрование стоит. Cloudflare надеется, что IPsec-сообщество сосредоточится на совместимых PQC-реализациях, а не уходит в нишевые сценарии с QKD.</p><h2>Зачем это всё клиентам Cloudflare</h2><p>Cloudflare обещает не брать с клиентов отдельных денег за post-quantum: фича включена в существующие тарифы IPsec и не требует обновления железа на стороне клиента — нужны только свежие прошивки Cisco/Fortinet и поддержанная их сторона.</p><blockquote>В TLS-мире уже больше двух третей человеко-генерированного трафика к сети Cloudflare идёт через post-quantum шифрование. В мире site-to-site IPsec до этого момента всё было иначе.</blockquote><h2>Что делать сегодня</h2><p>Если у вас Cloudflare IPsec и Cisco 8000/Fortinet FortiGate в филиале, начните с чек-листа: версия прошивки (Cisco 26.1.1+, FortiOS 7.6.6+), включить параметр post-quantum hybrid в конфигурации IKEv2-туннеля, проверить логи на успешный обмен ML-KEM. Если у вас Palo Alto Networks или другой вендор, который пока запускает RFC 9370 без draft-ietf-ipsecme-ikev2-mlkem, — следить нужно за обновлениями прошивок самого вендора (Palo Alto обещает присоединиться к draft, как только индустрия консолидируется). До этого момента катить ранний vendor-specific вариант не стоит — легко получить туннели, которые не поднимаются между разными вендорами.</p><p>Оригинальный пост Sharon Goldberg и Amos Paul — на <a href="https://blog.cloudflare.com/post-quantum-ipsec/" rel="noopener">blog.cloudflare.com</a>. Спецификация: <a href="https://datatracker.ietf.org/doc/draft-ietf-ipsecme-ikev2-mlkem/" rel="noopener">draft-ietf-ipsecme-ikev2-mlkem на datatracker.ietf.org</a>. Стандарт ML-KEM: <a href="https://csrc.nist.gov/pubs/fips/203/final" rel="noopener">FIPS 203 на csrc.nist.gov</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare перевела Sandboxes в GA — изолированные Linux-окружения для ИИ-агентов на edge</title>
      <link>https://tproger.ru/news/cloudflare-perevela-sandboxes-v-ga-izolirovannye-linux-okruzhen</link>
      <comments>https://tproger.ru/news/cloudflare-perevela-sandboxes-v-ga-izolirovannye-linux-okruzhen?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cloudflare-perevela-sandboxes-v-ga-izolirovannye-linux-okruzhen</guid>
      <description><![CDATA[<p>Cloudflare перевела Sandboxes в GA — persistent Linux-окружения для кода LLM-агентов. Active CPU Pricing, бэкапы в R2, edge-распределение. Разбираем.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cloudflare-perevela-sandboxes-v-ga-izolirovannye-linux-okruzhen">Cloudflare перевела Sandboxes в GA — изолированные Linux-окружения для ИИ-агентов на edge</a>»</p>]]></description>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 23 Apr 2026 13:00:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы строите агентов, которым нужно запускать сгенерированный код, — теперь можно не поднимать собственную инфраструктуру изоляции. Cloudflare перевела <b>Sandboxes</b> в общий доступ: изолированные Linux-окружения, которые стартуют по требованию, спят в простое и платят только за реально использованные CPU-циклы.</p><p>Релиз состоялся 13 апреля 2026 года в рамках <b>Agents Week</b> — тематической недели Cloudflare, посвящённой инфраструктуре для ИИ-агентов. В бете продукт был 9 месяцев — первый анонс прошёл в июне 2025-го. Sandboxes доступны как часть платформы Cloudflare Workers.</p><p>— <b>Что это.</b> Persistent Linux-окружение на базе Cloudflare Containers. Запрос по имени: если сэндбокс запущен — получаете его, если нет — стартует on-demand, засыпает в простое, пробуждается на следующем вызове.</p><p>— <b>Для чего.</b> Безопасное исполнение кода, который пишут LLM-агенты (coding agents, data-analysis, CI-like задачи). Публичный partner — <b>Figma Make</b>.</p><p>— <b>Цена.</b> Active CPU Pricing — $0,00002 за vCPU-секунду. За idle не платите, только за реально использованные циклы.</p><p>— <b>Лимиты.</b> На standard-плане: 15 000 одновременных lite-инстансов (урезанные CPU и RAM для коротких задач), 6 000 basic (сбалансированные) и 1 000+ больших (увеличенные ресурсы, доступ по запросу).</p><p>— <b>Безопасность.</b> Secure credential injection через programmable egress proxy — агент не видит токенов, они подставляются на сетевом уровне.</p><h2>Что это за сэндбокс</h2><p>Sandbox в терминах Cloudflare — это полноценный контейнер с shell, файловой системой и background-процессами. Не V8 isolate (эфемерные изоляты для одноразовых задач в миллисекундах закрывает соседний продукт <b>Dynamic Workers</b>, он анонсирован в ту же неделю), а именно Linux-контейнер. Запросили по имени — получили его же; в простое спит, при обращении просыпается. ID доступен из любой точки сети Cloudflare.</p><p>Внутри сэндбокса работает <b>persistent code interpreter</b> для Python, JavaScript и TypeScript. Состояние переменных и импортов сохраняется между вызовами, как в Jupyter notebook. Это значит, что агент выполняет код пошагово и держит промежуточные результаты в памяти — не поднимая контекст заново на каждом вызове. Остальные языки внутри сэндбокса тоже работают, но без сохранения состояния — как обычные shell-команды.</p><h2>Что внутри</h2><h3>SDK и API</h3><p>Официальный SDK — @cloudflare/sandbox, актуальная версия 0.8.9. Базовое использование из Cloudflare Worker:</p><p>Методы SDK покрывают типовой жизненный цикл: запуск shell-команд, gitCheckout для клонирования репозиториев, writeFile, runCode, createCodeContext, startProcess, exposePort, terminal, watch, snapshot, backup и restore.</p><h3>Терминал и файловая система</h3><p>Для интерактивных сценариев есть полноценный <b>pseudo-terminal</b> через WebSocket, совместимый с xterm.js (поставляется отдельный addon @cloudflare/sandbox/xterm). Буфер вывода хранится на сервере — реконнект воспроизводит пропущенные строки без потерь.</p><p>Изменения файловой системы можно отслеживать в реальном времени: SSE-стрим поверх Linux inotify. Эта фича вышла в марте 2026-го и особенно полезна для агентов, которые должны реагировать на появление артефактов сборки.</p><h3>Бэкапы и быстрый старт</h3><p>Cloudflare сохраняет полный disk state сэндбокса — OS-конфиг, установленные зависимости, исходники — в <b>R2</b> с tiered caching. Холодный старт с git clone axios и npm install занимает 30 секунд, а восстановление из backup — <b>2 секунды</b>. Для таких сценариев, как параллельное исследование нескольких гипотез агентом, это меняет правила: каждую ветку стартуют из одного сохранённого состояния. Полноценные snapshots (более лёгкие, чем backup) Cloudflare обещает выкатить в ближайшие недели.</p><h3>Безопасность credentials</h3><p>Самая интересная часть — <b>programmable egress proxy</b>. Все исходящие запросы сэндбокса проходят через outbound Worker, который подставляет токены на сетевом уровне. Агенту не нужно знать секреты API — он делает обычный HTTP-запрос, а токен инжектится по пути. Поддерживаются identity-aware policies и динамическое сужение сети по прогрессу задачи.</p><blockquote>A Sandbox today is a full development environment: a terminal you can connect a browser to, a code interpreter with persistent state, background processes with live preview URLs, a filesystem that emits change events in real time, egress proxies for secure credential injection, and a snapshot mechanism that makes warm starts nearly instant.</blockquote><h2>Для кого это</h2><ul><li><b>Coding agents</b>, которым нужно запускать сгенерированный код без доверия к его содержимому</li><li><b>Code interpreter</b> для data-analysis-сценариев с сохранением состояния между вызовами</li><li><b>CI-подобные задачи</b>, где нужна изоляция и контроль выхода в сеть</li><li><b>Fork-сессии</b> для параллельного исследования гипотез — запуск нескольких сэндбоксов из общего снапшота</li><li><b>Продуктовая интеграция</b> в app, где пользователь пишет и запускает свой код (как сделала Figma Make)</li></ul><h2>Чем отличается от конкурентов</h2><p>Рынок изолированного исполнения кода для агентов уже густонаселён. <b>E2B</b> строит на Firecracker microVM и заявляет покрытие ~50% Fortune 500. <b>Daytona</b> делает Docker-контейнеры с sub-90ms созданием. <b>Modal</b> специализируется на serverless GPU/Python. <b>Vercel Sandbox</b> — тоже Firecracker, сейчас в бете.</p><p>Главное отличие Cloudflare — двухуровневая схема: <b>Dynamic Workers</b> (V8 isolates, эфемерное исполнение) для одноразовых задач и <b>Sandboxes</b> (полноценная ОС, persistent state) для сложных сценариев. Всё это доступно в 330+ городах edge-сети Cloudflare, что упрощает работу с региональными пользовательскими данными.</p><blockquote>Figma Make создан, чтобы помочь создателям с разным бэкграундом быстрее переходить от идеи к продакшену. Для этого нам нужна была инфраструктура, которая давала бы надёжные и масштабируемые сэндбоксы для запуска недоверенного кода агентов и пользователей.</blockquote><h2>Что это значит</h2><p>Sandboxes закрывают важный пробел в стеке agent-infra у Cloudflare: раньше для безопасного исполнения кода LLM-агентов приходилось интегрироваться с E2B, Modal или поднимать Firecracker самостоятельно. Теперь можно остаться в экосистеме Cloudflare — <a href="https://tproger.ru/news/odna-strochka-v-kubernetes-sekonomila-cloudflare-600-chasov-v-god">Workers</a>, Durable Objects, R2 и Sandboxes живут в одной сети, с общим биллингом и единым SDK.</p><p>Главное конкурентное преимущество — edge-распределение. Для агентов, которые работают с пользовательскими данными в конкретном регионе, это снижает latency и упрощает compliance. Минус — пока нет бенчмарков cold start относительно E2B и Vercel Sandbox в independent-тестах; обещанные 2 секунды восстановления Cloudflare нужно проверять на реальных нагрузках.</p><p>Если строите собственный coding agent или code interpreter, попробовать Cloudflare Sandboxes стоит. SDK ставится через npm install @cloudflare/sandbox, для первых экспериментов хватит минимального плана Workers. <a href="https://blog.cloudflare.com/sandbox-ga/">Полный анонс</a>, <a href="https://blog.cloudflare.com/sandbox-auth/">deep dive по egress proxy</a>, <a href="https://www.infoq.com/news/2026/04/cloudflare-sandboxes-ga/">разбор InfoQ</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>docker pull ломается в Испании по выходным — La Liga блокирует IP Cloudflare</title>
      <link>https://tproger.ru/news/docker-pull-lomaetsya-v-ispanii-po-vyhodnym-la-liga-blokiruet-i</link>
      <comments>https://tproger.ru/news/docker-pull-lomaetsya-v-ispanii-po-vyhodnym-la-liga-blokiruet-i?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/docker-pull-lomaetsya-v-ispanii-po-vyhodnym-la-liga-blokiruet-i</guid>
      <description><![CDATA[<p>По выходным до 24 мая 2026 docker pull, GitHub Actions и Vercel могут не работать в Испании: La Liga блокирует IP Cloudflare. Как настроить зеркало реестра и CI вне страны.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/docker-pull-lomaetsya-v-ispanii-po-vyhodnym-la-liga-blokiruet-i">docker pull ломается в Испании по выходным — La Liga блокирует IP Cloudflare</a>»</p>]]></description>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[CDN]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 13 Apr 2026 11:00:05 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если у вас команда в Испании или серверы, завязанные на Cloudflare/Vercel, — по выходным до 24 мая 2026 ждите странных сбоев: docker pull вылетает по таймауту, GitHub-экшены падают на клонировании, половина SaaS возвращает 5xx. Это не у вас — это <a href="https://www.laliga.com/">La Liga</a> снова блокирует IP-адреса CDN на время матчей.</p><p>Свежий <a href="https://news.ycombinator.com/item?id=47738883">тред на Hacker News</a> снова показал: на прошлых выходных docker pull из Испании стабильно ломался. Причина — судебный приказ от декабря 2024-го, который разрешает La Liga просить всех испанских ISP мгновенно блокировать любые IP без предварительной проверки, если лига считает, что на них ведётся нелегальный стрим футбольного матча.</p><ul><li>Судебный приказ Торгового суда №6 Барселоны (декабрь 2024) разрешает La Liga блокировать любые IP-адреса на время матчей без уведомления сервисов-владельцев.</li><li>Пиратские стримы прячутся за CDN Cloudflare, Vercel, Netlify, где один IP обслуживает тысячи легитимных сайтов — в итоге блокируются Docker Hub, Twitch, Steam, LinkedIn, X, часть ИИ-провайдеров.</li><li>Cloudflare и RootedCON проиграли апелляцию в марте 2025. Правительство Испании в октябре 2025 отказалось вмешиваться. Сезон 2025/26 продлится до 24 мая 2026 — до этого блокировки регулярны.</li><li>Docker уже падал по всей Испании осенью 2025 на несколько дней. Новые жалобы в апреле 2026 — это уже рутина, а не единичный случай.</li><li>Обход — VPN или прокси вне Испании. Для команд с испанскими разработчиками — зеркало реестра, резервный CI-раннер вне страны, жалоба в Еврокомиссию по регламенту 2015/2120.</li></ul><h2>Что именно ломается</h2><p>Разработчики из Испании (в основном из Мадрида и Барселоны) сообщают о регулярных сбоях по субботам и воскресеньям во время матчей La Liga. Конкретно ломается:</p><ul><li>docker pull для образов, раздающихся через Docker Hub (Cloudflare CDN)</li><li>GitHub Actions на self-hosted runners в Испании, а также у GitHub-hosted runners, если они тянут образы через испанский ISP</li><li>Vercel-хостинг (фронтенд-сайты внезапно возвращают 5xx)</li><li>Twitch, Steam, LinkedIn, часть Twitter/X — всё, что висит за Cloudflare</li><li>API некоторых LLM-провайдеров, которые используют Cloudflare Workers</li></ul><p>По словам Guillermo Rauch (CEO Vercel), La Liga даже не связывается с владельцами инфраструктуры — просто присылает ISP IP-адрес для блокировки. Даже после открытия официального канала связи (апрель 2025) Vercel в мае 2025 <a href="https://x.com/rauchg/status/1921595519886041395">жаловался</a>, что их CDN продолжают блокировать «без разбора».</p><h2>Почему страдает именно инфраструктура</h2><p>La Liga идентифицирует сайты, где, по их мнению, идёт пиратский стрим, и записывает IP серверов этих сайтов. Но сами стримы стоят за Cloudflare/Vercel/Netlify — эти CDN используют anycast: один и тот же IP-адрес объявляется из десятков дата-центров и обслуживает тысячи клиентов одновременно. Когда La Liga просит ISP заблокировать конкретный IP, отваливаются не только пиратские стримы, но и Docker Hub, SaaS-панели, виджеты поддержки и всё остальное, что делит IP с «подозреваемым».</p><p>Это не баг блокировки, а её фундаментальное свойство. Cloudflare прямо указывает на <a href="https://blog.cloudflare.com/cloudflare-la-liga-response/">непропорциональность</a> меры: блокировка одного IP выключает миллионы легитимных ресурсов. Суд это аргумент отклонил.</p><h2>Как мы сюда пришли</h2><ul><li><b>Декабрь 2024:</b> Торговый суд №6 Барселоны выдаёт La Liga разрешение на блокировки без предварительной проверки. Условие одно: «не затрагивать третьих лиц» — условие, которое физически невозможно соблюсти.</li><li><b>Февраль 2025:</b> первая крупная блокировка IP Cloudflare, массовые сбои в Испании. La Liga обвиняет Cloudflare в «защите преступных организаций».</li><li><b>Март 2025:</b> Cloudflare и RootedCON проигрывают апелляцию. Суд заявил, что доказательств влияния на третьи стороны нет.</li><li><b>Апрель–май 2025:</b> CEO Vercel Guillermo Rauch публично жалуется, что La Liga игнорирует обращения и продолжает блокировать IP CDN без согласования.</li><li><b>Осень 2025:</b> Docker падал по всей Испании на несколько дней после старта нового сезона.</li><li><b>Октябрь 2025:</b> испанский парламент отклоняет инициативу остановить блокировки. RootedCON публикует шаблон коллективного иска.</li><li><b>Апрель 2026:</b> сезон 25/26 в разгаре, свежий тред на HN показывает, что docker pull всё ещё не работает по выходным.</li></ul><h2>Что делать, если вас задело</h2><ol><li>Проверьте, затронут ли ваш сервис, на <a href="https://hayahora.futbol/">hayahora.futbol</a> — сайт мониторит IP, которые La Liga активно блокирует. Список меняется каждую неделю.</li><li>Для быстрой разблокировки команды: корпоративный VPN с выходом вне Испании (Нидерланды, Ирландия, Франция) или SSH-туннель через зарубежный VPS. Для российских разработчиков SSH-туннель через собственный VPS — надёжнее публичных VPN-сервисов, которые в РФ могут быть недоступны.</li><li>Для CI/CD: поставьте self-hosted runner в AWS/GCP/Yandex Cloud за пределами Испании. GitHub-hosted runners тоже затронуты, если трафик идёт через CDN.</li><li>Для docker pull: поднимите <a href="https://docs.docker.com/docker-hub/mirror/">pull-through mirror</a> — это локальный прокси-кэш Docker-образов, который живёт на вашем сервере вне Испании. Демон тянет слои через него, и трафик к Docker Hub (а значит, к Cloudflare) идёт уже не из Испании.</li><li>Для сайтов на Vercel/Cloudflare Pages: рассмотрите резервный деплой на AWS CloudFront или Yandex Cloud CDN — хотя бы как fallback на время матчей.</li><li>Подайте жалобу в <a href="https://ec.europa.eu/law/application-eu-law/report-breach">Европейскую комиссию</a> (регламент 2015/2120, нарушение сетевой нейтральности). Массовые жалобы — единственный реальный путь давления на Испанию.</li></ol><h2>Вывод</h2><p>Это прецедент, который неприятнее, чем кажется на первый взгляд. Страна ЕС на уровне судебного приказа разрешила частной лиге блокировать произвольную инфраструктуру интернета «по субботам» — и это не останавливают ни Еврокомиссия, ни парламент, ни публичное давление. Если такая практика закрепится, завтра правообладатели фильмов, музыки или игр захотят тот же инструмент, и уже не только в Испании.</p><blockquote>Проблема не в том, что они это делают. Проблема в том, что они МОГУТ это делать. Это вид государственной цензуры, который не должен быть возможен в принципе.</blockquote><p>Для разработчиков прагматичный вывод один: если у вас есть критическая зависимость от CDN Cloudflare или Vercel и хоть одно звено инфраструктуры физически в Испании, заложите план-B. Зеркало реестра, резервный CI-раннер, fallback-домен — мелочь в обычное время, страховка в выходные.</p><p>Источники: <a href="https://news.ycombinator.com/item?id=47738883">Hacker News</a>, <a href="https://daniel.es/blog/cloudflare-vs-la-liga/">daniel.es</a>, <a href="https://www.techradar.com/vpn/vpn-privacy-security/cloudflare-and-la-ligas-conflict-deepens-as-piracy-legal-battle-continues">TechRadar</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare запустила EmDash — open-source CMS на TypeScript, которая решает главную проблему WordPress</title>
      <link>https://tproger.ru/news/cloudflare-zapustila-emdash---open-source-cms-na-typescript--kot</link>
      <comments>https://tproger.ru/news/cloudflare-zapustila-emdash---open-source-cms-na-typescript--kot?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Алексей Михайлишин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cloudflare-zapustila-emdash---open-source-cms-na-typescript--kot</guid>
      <description><![CDATA[<p>Cloudflare выпустила EmDash — open-source CMS на TypeScript с песочницей для плагинов, MCP-сервером для ИИ-агентов и миграцией с WordPress. Разбираем архитектуру.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cloudflare-zapustila-emdash---open-source-cms-na-typescript--kot">Cloudflare запустила EmDash — open-source CMS на TypeScript, которая решает главную проблему WordPress</a>»</p>]]></description>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[TypeScript]]></category>
      <category><![CDATA[Node.js]]></category>
      <category><![CDATA[WordPress]]></category>
      <category><![CDATA[Фреймворки и библиотеки]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[CMS]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 02 Apr 2026 10:18:14 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы хоть раз обновляли WordPress-плагин и молились, чтобы сайт не упал — Cloudflare сделала кое-что для вас.</p><p><a href="https://blog.cloudflare.com/emdash-wordpress/">EmDash</a> — это новая open-source CMS (система управления контентом) на TypeScript от Cloudflare, которую компания <a href="https://blog.cloudflare.com/emdash-wordpress/">называет</a> «духовным наследником WordPress». Главная идея: плагины работают в изолированных песочницах и не могут навредить сайту, даже если содержат уязвимости.</p><ul><li>Cloudflare выпустила EmDash v0.1.0 — open-source CMS на TypeScript с MIT-лицензией</li><li>Каждый плагин запускается в изолированной песочнице (Dynamic Workers) и декларирует нужные разрешения в манифесте</li><li>96% уязвимостей WordPress-сайтов приходится на плагины — EmDash решает эту проблему архитектурно</li><li>Под капотом — Astro, serverless-архитектура, Portable Text вместо HTML, встроенный MCP-сервер для ИИ-агентов</li><li>Проект создан за 2 месяца с помощью ИИ-агентов, доступен на GitHub (3200+ звёзд за сутки)</li></ul><p>WordPress исполнится 23 года в этом году (основан в 2003 году). Платформа <a href="https://w3techs.com/technologies/details/cm-wordpress">обслуживает</a> более 40% всех сайтов в интернете, но её архитектура родом из эпохи, когда AWS EC2 ещё не существовал. Плагинная система WordPress — главное преимущество и главная боль одновременно.</p><h2>Почему безопасность плагинов WordPress — нерешаемая проблема</h2><p>В WordPress плагин — это PHP-скрипт, который встраивается напрямую в ядро и получает полный доступ к базе данных и файловой системе. Нет изоляции, нет ограничений. Установить плагин — значит полностью ему довериться.</p><p>Статистика <a href="https://www.wordfence.com/">Wordfence</a> и других ИБ-компаний неутешительна:</p><ul><li><b>96% уязвимостей</b> WordPress-сайтов происходят из плагинов</li><li>В 2025 году нашли больше критических уязвимостей в экосистеме WordPress, чем за два предыдущих года вместе</li><li>Очередь ревью в маркетплейсе WordPress.org — <b>800+ плагинов</b>, ожидание — минимум 2 недели</li></ul><p>WordPress не может решить эту проблему, не переписав архитектуру с нуля. Cloudflare решила это сделать.</p><h2>Как EmDash изолирует плагины</h2><p>В EmDash каждый плагин запускается в собственном изолированном воркере (<a href="https://developers.cloudflare.com/workers/">Dynamic Worker</a> — легковесная v8-песочница, запускающаяся за миллисекунды). Вместо полного доступа ко всему, плагин <b>декларирует</b> в манифесте, какие возможности ему нужны:</p><p>Этот плагин запрашивает ровно два разрешения: чтение контента и отправку email. <b>Ничего другого он сделать не может</b> — ни обратиться к внешнему серверу, ни прочитать файловую систему, ни получить доступ к базе данных напрямую.</p><p>Модель напоминает OAuth: при установке плагина вы видите, какие именно разрешения он запрашивает, и принимаете осознанное решение. Администратор может задать политики — какие capabilities допустимы для каких ролей.</p><h2>Архитектура и стек</h2><p>EmDash построен на современном стеке:</p><ul><li><b>TypeScript</b> — весь код, включая плагины и темы</li><li><b>Astro</b> — фреймворк для контентных сайтов, рендеринг тем</li><li><b>Portable Text</b> — структурированный JSON вместо HTML, контент не привязан к DOM</li><li><b>Serverless</b> — масштабируется до нуля, работает на Cloudflare Workers или любом Node.js-сервере</li><li><b>Passkeys</b> — аутентификация без паролей по умолчанию (WebAuthn)</li><li><b>MIT-лицензия</b> — без ограничений GPL, плагины могут иметь любую лицензию</li></ul><h3>Хранение и совместимость</h3><p>На Cloudflare EmDash использует D1 (база данных), R2 (файлы), Workers (вычисления). Но абстракции портируемы: можно запустить на SQLite, PostgreSQL, AWS S3 или локальном файловом хранилище. Команда для развёртывания:</p><h2>ИИ-нативная CMS: MCP, CLI, Agent Skills</h2><p>EmDash <a href="https://github.com/emdash-cms/emdash">спроектирован</a> для работы с ИИ-агентами:</p><ul><li><b>Встроенный MCP-сервер</b> — Claude, ChatGPT и другие ИИ-инструменты могут управлять сайтом напрямую через Model Context Protocol</li><li><b>Agent Skills</b> — файлы-инструкции для ИИ-агентов: как писать плагины, портировать темы с WordPress, работать со схемами контента</li><li><b>CLI</b> — программное управление контентом, медиа, схемами</li></ul><p>По сути, рутинную работу — миграцию контента, создание плагинов, адаптацию тем — можно поручить ИИ-агенту, и EmDash даст ему весь необходимый контекст.</p><h2>Встроенная монетизация через x402</h2><p>Каждый сайт на EmDash поддерживает стандарт <a href="https://x402.org">x402</a> — нативные интернет-платежи. Клиент (например, ИИ-агент) отправляет HTTP-запрос, получает ответ 402 Payment Required и оплачивает доступ к контенту на лету. Настроить монетизацию можно без единой строчки кода — указать, какой контент платный, и привязать кошелёк.</p><h2>Миграция с WordPress</h2><p>EmDash поддерживает импорт существующих WordPress-сайтов:</p><ol><li>Экспорт WXR-файла (WordPress eXtended RSS) из WordPress-админки</li><li>Или установка плагина EmDash Exporter, который создаёт защищённый endpoint для миграции</li><li>Автоматический перенос постов, страниц, медиафайлов и таксономий</li></ol><p>Кастомные типы контента (которые в WordPress требуют Advanced Custom Fields) в EmDash задаются через визуальный конструктор схем в админке.</p><h2>Что стоит учесть</h2><p>EmDash находится в статусе <b>бета-превью (v0.1.0)</b>. Несколько моментов:</p><ul><li>Проект молодой — 62 коммита, 4 контрибьютора, 34 релиза</li><li>Песочница для плагинов через Dynamic Workers требует платного аккаунта Cloudflare (от $5/мес), но EmDash запускается и без неё — плагины будут работать в safe mode без изоляции</li><li>Экосистема плагинов и тем ещё не сформировалась — на старте доступны формы, встраивания, SEO, аудит-лог</li><li>Привязка к инфраструктуре Cloudflare — можно запустить на Node.js, но максимальную производительность даёт именно Cloudflare</li></ul><h2>Выводы</h2><blockquote>WordPress — триумф open source, который дал возможность публиковаться миллионам. Но экосистеме нужен вариант, который даёт ту же свободу и доступность, решая при этом проблемы, которые WordPress не может решить.</blockquote><p>EmDash — амбициозная заявка Cloudflare на рынок CMS. За 24 часа после анонса проект набрал более 3200 звёзд на <a href="https://github.com/emdash-cms/emdash">GitHub</a> и 600+ баллов на Hacker News. Продакшн-готовности пока нет — это бета. Но идея изолированных плагинов с декларативными разрешениями решает реальную проблему, которая мучает WordPress-экосистему десятилетиями.</p><p>Попробовать EmDash можно в <a href="https://emdash.dev/playground">онлайн-песочнице</a> или развернуть локально через CLI.</p>]]></content:encoded>
    </item>
    <item>
      <title>Headless WordPress: архитектура с Next.js, GraphQL и Cloudflare</title>
      <link>https://tproger.ru/articles/headless-wordpress--arhitektura-s-next-js--graphql-i-cloudflare</link>
      <comments>https://tproger.ru/articles/headless-wordpress--arhitektura-s-next-js--graphql-i-cloudflare?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Александр Пехота]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/headless-wordpress--arhitektura-s-next-js--graphql-i-cloudflare</guid>
      <description><![CDATA[<p>Разбираем headless WordPress на практике: Next.js, Cloudflare Workers, GraphQL и архитектура быстрых и масштабируемых сайтов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/headless-wordpress--arhitektura-s-next-js--graphql-i-cloudflare">Headless WordPress: архитектура с Next.js, GraphQL и Cloudflare</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Оптимизация]]></category>
      <category><![CDATA[PHP]]></category>
      <category><![CDATA[WordPress]]></category>
      <category><![CDATA[React]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[CMS]]></category>
      <category><![CDATA[CDN]]></category>
      <category><![CDATA[CI/CD]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 26 Mar 2026 11:29:45 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Почему WordPress?</h2><p>WordPress часто не любят backend-разработчики, и у каждого на это есть свои причины. Кому-то не нравится функциональный стиль разработки, кто-то критикует form-builder и экосистему плагинов. У других WordPress как CMS и PHP как язык программирования до сих пор ассоциируются со стереотипами 10–15-летней давности - будто они устарели и уступают современным технологиям.</p><p>При этом реальность такова, что и PHP, и WordPress - отличные и современные инструменты, которые очень хорошо выполняют свои задачи. Опустим PHP - статья не об этом. Что же можно сказать про WordPress как про продукт и как CMS?</p><p>WordPress по‑прежнему остаётся самой популярной системой управления контентом. Согласно данным команды WordPress, платформа обслуживает более 43% всех веб-сайтов и занимает долю в 61% на рынке CMS. Также статистика показывает, что WordPress используется примерно на 59% сайтов, где известна CMS (это около 42% всего веба).</p><p>Данные были взяты из официального блога WordPress и сайта w3techs.com:</p><ul><li><a href="https://wordpress.com/blog/2025/04/17/wordpress-market-share/" rel="nofollow">https://wordpress.com/blog/2025/04/17/wordpress-market-share/ </a></li><li><a href="https://w3techs.com/technologies/overview/content_management" rel="nofollow">https://w3techs.com/technologies/overview/content_management</a></li><li><a href="https://w3techs.com/technologies/details/cm-wordpress" rel="nofollow">https://w3techs.com/technologies/details/cm-wordpress</a></li></ul><p>При этом, традиционный WordPress объединяет CMS, шаблоны на PHP и монолитные темы. Такая связка усложняет разработку с использованием современных JS фреймворков, а также затрудняет независимое масштабирование фронтенда и бэкенда, и оптимизацию производительности и безопасности. Жёсткая связка страниц, устаревшие PHP‑функции и не самый удобный девелоперский опыт часто заставляют команды искать альтернативы.</p><p>Headless WordPress решает эти проблемы: CMS становится админ-панелью для управления контентом, а отдельный фронтенд отвечает за UI. Такое разделение обязанностей даёт несколько преимуществ: четкое разделение ответственности, независимое масштабирование интерфейса и CMS, упрощенную локальную разработку и CI/CD. CMS превращается в API‑ориентированное хранилище, а современные фреймворки вроде Next.js берут на себя маршрутизацию и рендеринг.</p><h2>Headless WordPress с использованием WPGraphQL</h2><p>Чтобы использовать WordPress как headless‑CMS, нужен API. Также есть интересный пост про headless wordpress в их <a href="https://wordpress.com/blog/2025/03/20/headless-wordpress/" rel="nofollow">официальном блоге</a>.</p><p>В WordPress из коробки есть REST API, но для frontend и mobile приложений часто удобнее использовать GraphQL. <a href="https://wordpress.org/plugins/wp-graphql/" rel="nofollow">WPGraphQL</a> - это open source плагин, который добавляет GraphQL API в WordPress. Используя WPGraphQL, мы получаем:</p><ul><li>Гибкие запросы к таким сущностям, как посты, страницы, произвольным типам постов, таксономиям и пользователям.</li><li>Систему расширений которая позволяет расширять функционал GraphQL бекенда и таким образом поддерживать популярные плагины, тем самым позволяя возвращать дополнительные поля которые не относятся к стандартным полям Wordpress.</li><li>GraphQL API, который даёт очень удобный формат для интеграции фронтенд фреймворков таких как Next.js, Astro и SvelteKit.</li><li>Оптимизацию производительности, поскольку клиент запрашивает только нужные поля и данные делая один запрос вместо группы REST запросов + отдельный фронтенд забирает на себя часть запросов.</li></ul><p>В дополнение к доступному функционалу WPGraphQL можно добавлять дополнительные плагины-расширения, такие как <a href="https://wordpress.org/plugins/add-wpgraphql-seo/" rel="nofollow">WPGraphQL Yoast SEO</a> и <a href="https://woographql.com/" rel="nofollow">WooGraphQL</a> (WPGraphQL для WooCommerce). Таким образом добавив несколько плагинов в базовую инсталляцию CMS можно из коробки получить полностью функциональный GraphQL бекенд, который может покрыть запросы для блога, сео функционал, онлайн-магазин и тд.</p><p>Важно отметить, что изначальная идея использовать WPGraphQL пришла из статьи в блоге <a href="https://vercel.com/kb/guide/wordpress-with-vercel" rel="nofollow">Vercel</a>.</p><figure><img src="https://media.tproger.ru/user-uploads/136948/2026-03-25/838bc085-bfe5-4888-a326-6dcc00b0aaf5.webp" alt="Сравнение традиционного WordPress и headless WordPress: монолитная CMS с PHP темами против архитектуры с WPGraphQL API и Next.js фронтендом" /><figcaption>Традиционный WordPress vs Headless WordPress: разделение CMS и frontend через API (WPGraphQL + Next.js)</figcaption></figure><h2>Фронтенд на Next.js</h2><p><a href="https://nextjs.org/" rel="nofollow"> Next.js</a> - production-ready React-фреймворк, который разрабатывается компанией Vercel. Многие используют его по умолчанию для разных headless‑проектов. Наш пример headless-wordpress не исключение. Фреймворк предлагает удобную <a href="https://nextjs.org/docs/pages/building-your-application/routing" rel="nofollow">маршрутизацию</a> на базе файловой системы, где любой файл в папке pages автоматически становится маршрутом и поддерживает несколько стратегий рендеринга:</p><ul><li>Server‑side rendering (SSR) позволяет генерировать HTML при каждом запросе.</li><li>Статическая генерация (включая [Incremental Static Regeneration])</li><li>React Server Components, стратегия которая дает гибкость в балансировании производительности и кэширования.</li></ul><p>Это делает Next.js хорошей платформой для работы с GraphQL API и рендеринга страниц React‑компонентами. Если у вас нет опыта с <a href="http://nex.js">Next.js</a> и React, то это не повод не попробовать набросать POC в свободное время. Современные <a href="http://next.js">Next.js</a> и React templates + хороший AI agent помогут адаптировать UI под GraphQL для вас.</p><h2>Почему Cloudflare?</h2><p>Vercel очень часто является платформой по умолчанию для Next.js‑приложений. Более того Next.js адаптирован для запуска из коробки на серверах Vercel. При этом нужно добавить, что идея этой статьи не в том чтобы как-то компрометировать Vercel. Что же нужно знать про Cloudflare чтобы обратить внимание на этот сервис с точки зрения альтернативы для хостинга Next.js?</p><p>Согласно <a href="https://w3techs.com/technologies/details/cn-cloudflare" rel="nofollow">статистике</a>, реверс-прокси сервисы Cloudflare используются примерно на 21,9% всех сайтов в интернете, а это более 82% сайтов, где используется прокси‑сервисы в принципе. Такая распространённость говорит о масштабе, надежности и глобальном охвате сервиса. Но Cloudflare - это не только reverse-proxy. Компания разрабатывает целую группу облачных сервисов, включая такие сервисы, как Cloudflare Pages - альтернатива Github Pages, Workers - Serverless functions (по аналогии с AWS Lambda), Контейнеры, Очереди, AI сервисы, R2 Object Storage, и другие. В дополнение ко всему, компания предоставляет такие сервисы, как защита сайта (site-protection), VPN и капча (human-detection captcha). Такое разнообразие сервисов делает сервис очень распространенным.</p><h2>Лимиты бесплатного тарифа Cloudflare</h2><p>Одним из самых интересных аргументов в пользу Cloudflare можно считать их бесплатный тариф. Защита от DDoS, Universal SSL и глобальную CDN доступны бесплатно. Также бесплатный тариф включает большинство из вышеперечисленных облачных сервисов. Например, Cloudflare Workers, который можно использовать для хостинга Next.js-проектов, бесплатно даёт 100,000 запросов в день. Или R2 object storage - альтернатива S3 по умолчанию дает 10GB пространства, которое можно использовать для хранения статики или других данных. Этого более чем достаточно чтобы поэкспериментировать на выходных с новым стеком и вполне достаточно для того, чтобы бесплатно хостить ваш проект до тех пор пока у вас не пойдет серьезный трафик. Ниже приведена таблица с некоторыми из Cloudflare сервисов и что включено в бесплатный тариф.</p><figure><img src="https://media.tproger.ru/user-uploads/136948/2026-03-25/826d92c6-cecd-4d70-a2ee-78733a324a70.webp" alt="Таблица сервисов Cloudflare (Workers, KV, D1, R2 и др.) с лимитами бесплатного тарифа и их назначением" /><figcaption>Cloudflare free tier: сервисы и лимиты, достаточные для запуска headless WordPress + Next.js проекта. Взято с https://dev.to/ioniacob/which-cloudflare-services-are-free-2025-free-tier-guide-53jl.</figcaption></figure><h2>Запуск Serverless функций на edge-серверах</h2><p>Cloudflare Workers позволяют запускать серверлесс‑код по всей сети Cloudflare. Ниже приведено изображение показывающее как работает Edge CDN, когда например статика продублирована на все доступные сервера и таким образом пользователь получает ресурсы с самого близлежащего сервера.</p><figure><img src="https://media.tproger.ru/user-uploads/136948/2026-03-25/6c12d101-f282-4d1a-8d7a-b4119fabdfda.webp" alt="Схема работы CDN: пользователи обращаются к ближайшим edge-серверам, которые кешируют контент и уменьшают нагрузку на origin-сервер" /><figcaption>Как работает CDN: пользователь получает контент с ближайшего edge-сервера, снижая задержку и нагрузку на origin. Источник: https://www.cloudflare.com/learning/cdn/what-is-a-cdn/</figcaption></figure><p>Эта картинка хороша тем, что аналогично CDN статике на этих же серверах можно запускать и Workers (Lambda) функции, тем самым ускоряя вашу инфраструктуру еще больше.</p><p>Одной из интересных особенностей Workers-функций является отсутствие cold-starts. Любой cloud provider обычно подымает docker container или виртуализированное окружение в момент первого запуска программы, а это всегда задержка. Минусом Workers-функций является тот факт что их Runtime API требует чтобы код мог использовать их Web platform APIs. А это в свою очередь ограничивает выбор языка программирования: Javascript, Typescript и WebAssembly. Но благодаря такому подходу Workers используют изолированную модель запуска  и могут быть прогреты еще до момента запуска кода этого воркера. Прогрев начинается еще на этапе TLS-соединения между клиентом и серверами Cloudflare. Полный текст статьи можно почитать в их <a href="https://blog.cloudflare.com/eliminating-cold-starts-with-cloudflare-workers/" rel="nofollow">блоге</a>.</p><figure><img src="https://media.tproger.ru/user-uploads/136948/2026-03-25/4bcd2a0a-5161-46f5-984c-87f4097411dc.webp" alt="Схема работы Cloudflare Workers: прогрев (warmup) и загрузка воркера происходят во время TLS handshake до выполнения HTTP-запроса" /><figcaption>Как Cloudflare Workers устраняют cold-start: прогрев воркера происходит ещё на этапе TLS-соединения.</figcaption></figure><p>Воркеры выполняются на edge-серверах, которые находятся ближе всего к пользователям, тем самым уменьшая задержку и разгружая origin‑сервер (в нашем случае WordPress backend). По аналогии с другими cloud-провайдерами, код внутри Workers Runtime может использовать другие сервисы Cloudflare, такие как:</p><ul><li><a href="https://developers.cloudflare.com/workers/runtime-apis/cache/" rel="nofollow">Cache API</a> - позволяет читать и записывать данные в глобальный edge‑кэш через caches.default, что удобно для кэширования GraphQL‑ответов или страниц Next.js.</li><li><a href="https://developers.cloudflare.com/kv/" rel="nofollow">Workers KV</a> - распределенное key‑value‑хранилище для конфигурации и небольших наборов данных; можно хранить и получать данные глобально с низкой задержкой.</li><li><a href="https://developers.cloudflare.com/workers/configuration/cron-triggers/" rel="nofollow">Cron Triggers</a> - можно сопоставить cron‑выражение с обработчиком scheduled(), чтобы запускать периодические задачи, например, уборку кэша или обновление данных. Триггеры выполняются на малоиспользуемых машинах, максимизируя эффективность.</li></ul><p>Наличие доступа к дополнительным сервисам, таким как базы данных (D1), объектное хранилище (R2), очереди и AI даёт свободу строить более сложные и гибкие архитектуры, что очень полезно в дальнейшем на больших масштабах.</p><h2>OpenNext: мост между Next.js и Cloudflare</h2><p>Самостоятельный деплой Next.js на разные платформы непрост, поскольку среда исполнения Vercel отличается от других. Можно поднять Next.js на Node‑сервере, но его работа отличается от edge‑режима Vercel. OpenNext - это проект с открытым исходным кодом, который адаптирует Next.js для разных серверлесс‑платформ. Важно сказать что у Next.js нет нативного способа само разворачивания на других платформах, кроме Vercel; существующие отдельные адаптеры разрознены и сложны в поддержке. <a href="https://opennext.js.org/" rel="nofollow">OpenNext</a> объединяет усилия в одном адаптере, переводя выход сборки Next.js в формат, совместимый с основными облачными платформами. Проект поддерживают сообщество SST (AWS), команда Cloudflare и Netlify. Соответственно, с помощью OpenNext можно развернуть Next.js на Cloudflare Workers, сохраняя SSR, статическую генерацию и API‑маршруты.</p><p>Cloudflare‑адаптер устанавливается через @opennextjs/cloudflare. Далее следует установить<a href="https://developers.cloudflare.com/workers/wrangler/"> Wrangler</a>, настроить wrangler.toml с вашим Account ID и создать open-next.config.ts для управления кэшем и ассетами. Адаптер собирает приложение Next.js под среду Cloudflare, создает edge‑воркер и конфигурирует кэш для статики и ISR‑страниц (например, используя R2). После публикации Git‑интеграция Cloudflare автоматически разворачивает приложение при каждом пуше в GitHub или GitLab, а для pull‑request создает превью.</p><figure><img src="https://media.tproger.ru/user-uploads/136948/2026-03-25/ffd3d8f8-9e94-4ee2-b1b8-7b7d075a9bbd.webp" alt="Логотипы OpenNext, Cloudflare, AWS Amplify и Netlify, показывающие поддержку деплоя Next.js на разные cloud-платформы" /><figcaption>OpenNext как единый адаптер для деплоя Next.js приложений на разные платформы: Cloudflare, AWS и Netlify</figcaption></figure><h2>Кэширование и уровни производительности</h2><p>Архитектура headless WordPress + Next.js + Cloudflare обычно включает несколько уровней кэша:</p><ol><li>Кэш браузера - стандартный HTTP‑кэш на стороне клиента.</li><li>Кэш edge‑рантайма - Cache API Cloudflare Workers сохраняет HTML‑страницы или GraphQL‑ответы рядом с пользователем; при попадании в кэш контент отдаётся мгновенно, а промахи идут к воркеру или origin.</li><li>Кэш ISR Next.js - технология Incremental Static Regeneration сохраняет отрендеренные страницы на сервере и обновляет их по запросу, снижая нагрузку на WordPress API.</li><li>Кэш GraphQL - API WPGraphQL может реализовывать кэширование по времени или тегам (например, через WPGraphQL Smart Cache), чтобы управлять сроком жизни ответов.</li></ol><p>Эта многоуровневая иерархия кэша обеспечивает, что большинство запросов вообще не доходят до вашего WordPress‑сервера, повышая производительность и снижая нагрузку.</p><p>Пример конечной архитектуры показан на изображении ниже.</p><figure><img src="https://media.tproger.ru/user-uploads/136948/2026-03-25/37141150-e160-423b-a8cd-3784117e6499.webp" alt="" /><figcaption>Архитектура headless WordPress + Next.js на Cloudflare: edge-рендеринг, многоуровневый кэш и взаимодействие с WPGraphQL</figcaption></figure><h2>Автоматизация периодических задач</h2><p>Headless‑сайтам часто требуются периодические действия - например, обновление кэша ISR или синхронизация данных. Cron Triggers Cloudflare позволяют планировать запуск воркера по cron‑выражению. Обработчик scheduled() срабатывает по расписанию и подходит для обслуживания и получения сторонних данных. Триггеры выполняются на малоиспользуемых машинах по всему миру и легко управляются через Wrangler или панель Cloudflare.</p><h2>Модернизация PHP‑стека с Roots toolkit</h2><p>Хотя headless WordPress переносит рендеринг на JavaScript, CMS всё ещё нужно поддерживать. В качестве бонуса хочется порекомендовать экосистему <a href="https://roots.io/" rel="nofollow">Roots</a>, которая предлагает современный инструментарий для разработки на WordPress:</p><figure><img src="https://media.tproger.ru/user-uploads/136948/2026-03-25/27e070e5-39c8-425b-8142-b0b2ce0af69d.webp" alt="Скриншот сайта Roots с описанием инструментов для разработки WordPress: Bedrock, Sage, Trellis и Acorn" /><figcaption>Roots — современный инструментарй для разработки WordPress с использованием Composer, Blade и автоматизированного деплоя. Источник: Roots - https://roots.io/</figcaption></figure><ul><li><a href="https://roots.io/bedrock/" rel="nofollow">Bedrock</a> - шаблон WordPress, которая устанавливает ядро, плагины и темы через Composer. Таким образом Bedrock дает современную для PHP проектов структуру проекта, улучшает структуру папок, использует концепты Двенадцать факторов для конфигурации приложения с помощью .env‑файлы и тд. Более того, управление зависимостями через Composer повышает надежность и позволяет делать деплой приложения на разные сервера без страха что-то забыть или упустить.</li><li><a href="https://roots.io/sage/" rel="nofollow">Sage</a> - стартовая тема WordPress, использующая Blade от Laravel для шаблонов и интегрирующая Tailwind CSS. Sage автоматически генерирует theme.json из конфигурации Tailwind, поддерживает live preview блокового редактора с Vite и позволяет создавать компоненты на Blade. Это помогает фронтенд‑разработчикам отойти от устаревших подходов для разработки тем Wordpress с нуля.</li><li><a href="https://roots.io/trellis/" rel="nofollow">Trellis</a> - DevOps‑инструмент на базе Ansible, который поднимает серверы и автоматизирует деплой. Trellis предоставляет LEMP‑стек (Ubuntu 24.04, Nginx, PHP 8.3, MariaDB), выполняет деплой без downtimes и из коробки поддерживает SSL‑сертификаты. CLI помогает создавать и настраивать серверы, а также разворачивать проекты с атомарными релизами и откатами.</li><li><a href="https://roots.io/acorn/" rel="nofollow">Acorn</a> - интеграция, позволяющая использовать функционал Laravel в WordPress. С Acorn становятся доступны такие инструменты как Blade‑шаблоны, миграции, роутинг, кэширование и Artisan‑подобный CLI внутри WordPress. Это позволяет разработчикам строить плагины и фичи WordPress с использованием современных PHP‑подходов и современного фреймворка .</li></ul><p>Эти инструменты показывают, что экосистема WordPress продолжает развиваться и хорошо сочетается с современными подходами. Иными словами, WordPress - отличное решение, если знать, как его правильно готовить.</p><h2>Собираем всё вместе</h2><p>Архитектура приложения headless WordPress + Next.js + Cloudflare выглядит приблизительно так:</p><ol><li>WordPress (headless) - работает на традиционном сервере или в контейнере. Редакторы управляют контентом в админке. WPGraphQL и его расширения предоставляют GraphQL‑endpoint с данными, SEO и другой информацией, например данными о магазине.</li><li>Next.js фронтенд - React‑приложение, которое получает данные через GraphQL, рендерит страницы на сервере (SSR) или статически (ISR/SSG) и обрабатывает маршрутизацию и взаимодействие с клиентом. Код хранится в Git и автоматически разворачивается благодаря Git‑интеграции Cloudflare.</li><li>Cloudflare Workers - размещают приложение Next.js на edge через OpenNext. Workers исключают cold-starts и работают по аналогии с CDN как можно ближе к пользователю. Они также выполняют кэширование, обрабатывают API‑маршруты и запускают cron‑задачи.</li><li>Кэш на edge и в браузере - несколько уровней кэша гарантируют быструю отдачу статики и отрендеренных страниц. KV, R2 или D1 могут хранить дополнительные данные вроде сессий или объектов.</li></ol><h2>Заключение</h2><p>Headless‑архитектура объединяет универсальность WordPress и гибкость современных JavaScript‑фреймворков. Экспонируя контент через WPGraphQL и потребляя его в Next.js, можно получить больше контроля над рендерингом и тем самым улучшить производительность. Размещение фронтенда на Cloudflare Workers через OpenNext позволяет приблизить фронтенд код к пользователям, устраняет cold-starts, позволяет использовать free-tier и продвинутые уровни кэширования. Инструменты вроде Bedrock, Sage, Trellis и Acorn модернизируют PHP/Wordpress‑сторону и делают CMS такой же удобной в работе, как и современный Next.js/React-фронтенд. Вместе эти технологии создают мощный стек для создания быстрых, масштабируемых и безопасных сайтов, будь то хакатон, pet‑проект или серьёзный продакшн.</p>]]></content:encoded>
    </item>
    <item>
      <title>Steam столкнулся с масштабным сбоем. Что известно</title>
      <link>https://tproger.ru/news/steam-stolknulsya-s-maswtabnym-sboem--chto-izvestno</link>
      <comments>https://tproger.ru/news/steam-stolknulsya-s-maswtabnym-sboem--chto-izvestno?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/steam-stolknulsya-s-maswtabnym-sboem--chto-izvestno</guid>
      <description><![CDATA[<p>Steam пережил глобальный сбой: онлайн упал с 34 до 9 млн игроков, проблемы связали с Cloudflare и Akamai, а не серверами Valve</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/steam-stolknulsya-s-maswtabnym-sboem--chto-izvestno">Steam столкнулся с масштабным сбоем. Что известно</a>»</p>]]></description>
      <category><![CDATA[Статистика]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Steam]]></category>
      <category><![CDATA[Инфраструктура]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 20 Feb 2026 16:54:38 GMT</pubDate>
      <content:encoded><![CDATA[<p>Компания Valve столкнулась с крупным сбоем в работе <a href="https://store.steampowered.com/">Steam</a> вечером 20 февраля.</p><p>Пользователи по всему миру начали массово жаловаться на проблемы примерно с 21:55 по московскому времени.</p><p>По данным Downdetector, количество жалоб быстро превысило 10 000 только в американском сегменте. В России также фиксировались тысячи обращений на Downdetector.su. Проблема носила глобальный характер.</p><h2>Что не работало</h2><p>Игроки сообщали о невозможности войти в аккаунт, скачать игры или обновления. У многих не запускались онлайн-матчи, не синхронизировались сохранения, не работал чат.</p><p>Сильнее всего пострадали сетевые проекты — в том числе Counter-Strike 2 и Dota 2. Пользователи жаловались, что не могут подключиться к серверам или вылетают из матчей.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2026-02-20/520d7e0e-f925-4000-a25e-1b350f12563f.webp" alt="" /></figure><h2>Причина — инфраструктура</h2><p>На странице статуса Steam указывалось, что сбой связан с проблемами у Cloudflare.</p><p>Также сообщалось о неполадках у Akamai — в частности, в системе управления сертификатами (CPS) через портал Akamai Control Center.</p><p>Иначе говоря, проблема оказалась не в самих серверах Valve, а в сторонней сетевой инфраструктуре, через которую проходит трафик платформы.</p><h2>Онлайн рухнул втрое</h2><p>Косвенное подтверждение масштаба сбоя — статистика онлайна.</p><p>Если около 20:00 в Steam находилось примерно 34 млн пользователей, то к 22:00 число активных игроков упало до 9,2 млн. Для платформы такого размера это резкое и аномальное снижение.</p><p>Valve отметила, что страницу статуса Steam за час просмотрели более 368 000 раз — показатель, который обычно сопровождает крупные инциденты.</p>]]></content:encoded>
    </item>
    <item>
      <title>OpenAI и Anthropic объединились для создания открытых ИИ-агентов под эгидой Linux Foundation</title>
      <link>https://tproger.ru/news/openai-i-anthropic-obedinilis-dlya-sozdaniya-otkrytyh-ii-agentov-pod-egidoj-linux-foundation</link>
      <comments>https://tproger.ru/news/openai-i-anthropic-obedinilis-dlya-sozdaniya-otkrytyh-ii-agentov-pod-egidoj-linux-foundation?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/openai-i-anthropic-obedinilis-dlya-sozdaniya-otkrytyh-ii-agentov-pod-egidoj-linux-foundation</guid>
      <description><![CDATA[<p>OpenAI и Anthropic создали Agentic AI Foundation под Linux Foundation, объединив MCP, Goose и AGENTS.md в единый стандарт ИИ-агентов</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/openai-i-anthropic-obedinilis-dlya-sozdaniya-otkrytyh-ii-agentov-pod-egidoj-linux-foundation">OpenAI и Anthropic объединились для создания открытых ИИ-агентов под эгидой Linux Foundation</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 10 Dec 2025 06:02:52 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если прошлый год прошел под знаком <b>LLM</b>, то 2025-й явно стал годом <b>ИИ-агентов</b>.</p><p>Компании выпускают ассистентов, автономные фреймворки и целые цепочки инструментов для автоматизации рабочих процессов.</p><p>Но рынок быстро столкнулся с проблемой: <b>большинство решений основаны на закрытых технологиях</b>, они плохо совместимы друг с другом и размывают идею открытой экосистемы.</p><p>Чтобы изменить ситуацию, <b>OpenAI</b>, <b>Anthropic</b> и <b>Block</b> объявили о создании <a href="https://aaif.io/press/linux-foundation-announces-the-formation-of-the-agentic-ai-foundation-aaif-anchored-by-new-project-contributions-including-model-context-protocol-mcp-goose-and-agents-md/">Agentic AI Foundation</a> (AAIF) — нового фонда под управлением Linux Foundation, который займется развитием открытых стандартов для ИИ-агентов.</p><p>Поддержку инициативе оказывают <i>Google</i>, <i>Microsoft</i>, <i>AWS</i>, <i>Bloomberg</i> и <i>Cloudflare</i>.</p><h2>MCP, Goose и AGENTS.md объединяют в один стандарт</h2><p>В рамках AAIF свои ключевые технологии передали сразу три компании:</p><ul><li><b>MCP (Model Context Protocol) от Anthropic</b> — стандарт связи между агентами и внешними инструментами. За год появилось уже <b>более 10 000 MCP-серверов</b>, а Microsoft встроила поддержку MCP прямо в Windows и Visual Studio. Это превращает агентов в «первоклассных граждан» ОС и упрощает автоматизацию разработки.</li><li><b>Goose от Block</b> — локальный агентный фреймворк, способный работать на устройстве пользователя без облака. Он использует MCP как базовый коммуникационный слой.</li><li><b>AGENTS.md от OpenAI</b> — открытый формат, который стал «README для ИИ-агентов». Файл описывает проект в машинно-читаемом виде: тесты, сборку, архитектуру, стили кода, политику безопасности и рабочие процессы. Формат уже используют 60 000+ open-source проектов, включая VS Code.</li></ul><h2>Зачем это индустрии</h2><p>Майк Кригер из Anthropic подчеркивает, что передача MCP под управление Linux Foundation гарантирует нейтральность стандарта.</p><p>В OpenAI заявили, что объединение технологий под одной организацией создает прочную основу для разработки надежных агентов.</p><h2>Что значит создание AAIF для рынка</h2><p>Появление AAIF может стать <b>переломным моментом</b>: впервые крупнейшие игроки не конкурируют стандартами, а объединяют их.</p><p>Это <b>шаг к единой экосистеме</b>, где агенты смогут взаимодействовать с инструментами, IDE, операционными системами и сервисами. И все это без кастомных протоколов и закрытых API.</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare раскрыла причину глобального сбоя, который накануне «уронил» половину интернета</title>
      <link>https://tproger.ru/news/cloudflare-raskryla-prichinu-globalnogo-sboya--kotoryj-nakanune--uronil--polovinu-interneta</link>
      <comments>https://tproger.ru/news/cloudflare-raskryla-prichinu-globalnogo-sboya--kotoryj-nakanune--uronil--polovinu-interneta?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cloudflare-raskryla-prichinu-globalnogo-sboya--kotoryj-nakanune--uronil--polovinu-interneta</guid>
      <description><![CDATA[<p>Cloudflare раскрыла, что глобальный сбой вызвал баг в Bot Management: сбой конфигурации в ClickHouse обрушил прокси-слой и «уронил» половину интернета</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cloudflare-raskryla-prichinu-globalnogo-sboya--kotoryj-nakanune--uronil--polovinu-interneta">Cloudflare раскрыла причину глобального сбоя, который накануне «уронил» половину интернета</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[GitLab]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Discord]]></category>
      <category><![CDATA[CDN]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 19 Nov 2025 06:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloudflare опубликовала технический разбор масштабного инцидента, из-за которого вчера перестали работать <b>ChatGPT</b>, <b>Discord</b>, <b>X</b>, <b>GitLab</b>, <b>сервисы правительства США</b> и даже сам <b>Downdetector</b>.</p><p>По словам CEO Cloudflare Мэттью Принса, это был <b>«худший сбой с 2019 года»</b>.</p><h2>Что пошло не так</h2><p>Проблема возникла не из-за DDoS-атаки, DNS или генеративного ИИ — хотя именно на это компания грешила изначально.</p><p>Источник оказался куда менее очевидным: <b>внутренний сбой в системе Bot Management</b>, которая определяет, какие запросы принадлежат людям, а какие — ботам и парсерам.</p><p>Система использует ML-модель и большой конфигурационный файл с признаками, по которым определяется бот-трафик. Этот файл регулярно пересчитывается в ClickHouse.</p><p>Cloudflare обнаружила, что изменение поведения запросов в ClickHouse привело к появлению множества <b>дублирующихся строк в конфигурации</b>.</p><p>Файл стал быстро расти, превысил лимиты памяти и в итоге <b>«уронил» центральный прокси-слой Cloudflare</b>, через который проходит трафик миллионов сайтов.</p><p>Клиенты, использующие бот-фильтры, начали получать массу ложных срабатываний — легитимные запросы считались ботами и блокировались. Те, кто не использовал Bot Management, пережили сбой почти незаметно.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-11-19/dc477e13-9ab8-4bfc-8731-04c897e9c7b8.jpeg" alt="" /><figcaption>Дашборд Cloudflare, демонстрирующий пример управления системой Bot Management</figcaption></figure><h2>Почему масштаб оказался таким большим</h2><p>Cloudflare сегодня — один из крупнейших игроков интернет-инфраструктуры:</p><ul><li>по данным самой компании, <b>20% всех сайтов в мире используют Cloudflare</b>;</li><li>сервисы <b>завязаны на ее CDN, защиту от DDoS, балансировку и маршрутизацию</b>;</li><li>сбой в одном модуле <b>приводит к лавинообразному эффекту</b>.</li></ul><p>Фактически, произошла та самая <b>проблема «единой точки отказа»</b>, о которой уже давно говорят эксперты сетевой инфраструктуры.</p><h2>Что Cloudflare планирует изменить</h2><p>Компания признала, что модель обработки собственных конфигурационных файлов требовала такой же строгой валидации, как пользовательский ввод. Теперь <b>Cloudflare обещает</b>:</p><ul><li><b>усилить проверку внутренних конфигов</b> перед распространением;</li><li><b>ввести новые глобальные «kill switch» переключатели</b> для быстрого отключения проблемных подсистем;</li><li><b>устранить сценарии</b>, при которых отчеты об ошибках могут съедать ресурсы и вызывать деградацию;</li><li><b>пересмотреть отказоустойчивость всех модулей</b> центрального прокси.</li></ul><h2>Почему это важно</h2><p>За последние месяцы это уже <b>третий крупный сбой глобального масштаба</b>: ранее проблемы в Azure и AWS также обрушивали сотни сервисов.</p><p>Чем больше интернет завязан на нескольких инфраструктурных компаниях, тем сильнее и заметнее эффект любого сбоя.</p>]]></content:encoded>
    </item>
    <item>
      <title>От ChatGPT до X: сбой в Cloudflare уронил половину интернета. Не работал даже Downdetector</title>
      <link>https://tproger.ru/news/ot-chatgpt-do-x--sboj-v-cloudflare-uronil-polovinu-interneta--ne-rabotal-dazhe-downdetector</link>
      <comments>https://tproger.ru/news/ot-chatgpt-do-x--sboj-v-cloudflare-uronil-polovinu-interneta--ne-rabotal-dazhe-downdetector?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/ot-chatgpt-do-x--sboj-v-cloudflare-uronil-polovinu-interneta--ne-rabotal-dazhe-downdetector</guid>
      <description><![CDATA[<p>Сбой в Cloudflare уронил половину интернета: ChatGPT, X и даже Downdetector часами выдавали ошибки из-за аномального трафика в сети</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/ot-chatgpt-do-x--sboj-v-cloudflare-uronil-polovinu-interneta--ne-rabotal-dazhe-downdetector">От ChatGPT до X: сбой в Cloudflare уронил половину интернета. Не работал даже Downdetector</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Новости]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[CDN]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 18 Nov 2025 14:40:47 GMT</pubDate>
      <content:encoded><![CDATA[<p>Во вторник <b>около 14:20</b> по Москве <b>интернет накрыло одним из крупнейших сбоев за последние месяцы</b>.</p><p>Cloudflare, пожалуй ведущий провайдер сетевой инфраструктуры, начал возвращать <b>ошибки для трафика</b> по всему миру. Под удар попали <b>ChatGPT</b>, <b>X</b>, <b>Downdetector</b> и десятки тысяч других сайтов.</p><h2>Что произошло</h2><p>Cloudflare официально заявила о <b>«всплеске аномального трафика»</b>, который вызвал массовые ошибки в сетевой маршрутизации:</p><blockquote>«Мы пока не знаем причину всплеска, но задействованы все ресурсы, чтобы восстановить работу трафика», — Cloudflare.</blockquote><p>Проблемы сразу ударили по крупным сервисам:</p><ul><li><b>X</b> показывал ошибку про <i>«внутренний сервер»</i> из-за сбоя в Cloudflare.</li><li><b>ChatGPT</b> выдавал: <i>«please unblock challenges.cloudflare.com to proceed»</i>.</li><li><b>Downdetector</b> — сервис, который должен мониторить сбои сам лег и отдавал <i>ту же ошибку Cloudflare</i>.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-11-18/5c0c4fe9-6f0b-4cd6-b427-b902549b8ef3.jpeg" alt="" /></figure><h2>Насколько все было плохо</h2><p>Cloudflare обслуживает <b>около 20% всех сайтов в мире</b>, от CDN и DNS до защиты от DDoS. Когда у нее проблемы — проблемы в целом почти у всего интернета.</p><p>NetBlocks, например, назвал происходящее «катастрофическим нарушением инфраструктуры Cloudflare». И добавил, что гигант <b>стал критически важной точкой отказа для интернета</b> слишком многое завязано на его защите.</p><h2>Почему так больно?</h2><p>Многие компании <b>вынуждены зависеть от Cloudflare, AWS или Azure</b> — альтернативы есть, но их мало. И такие сбои вытаскивают наружу неприятный факт: <b>интернет стал слишком централизованным</b>, а единичные инфраструктурные игроки — слишком важными.</p><h2>Что сейчас</h2><p>На момент написания новости, Cloudflare заявила, что <b>сервисы «постепенно восстанавливаются»</b>, но часть пользователей все еще может видеть ошибки.</p><p>Причина аномального трафика пока не раскрыта.</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare поймала редкий баг в компиляторе Go для arm64: падения при разворачивании стека</title>
      <link>https://tproger.ru/news/cloudflare-pojmala-redkij-bag-v-kompilyatore-go-dlya-arm64--padeniya-pri-razvorachivanii-steka</link>
      <comments>https://tproger.ru/news/cloudflare-pojmala-redkij-bag-v-kompilyatore-go-dlya-arm64--padeniya-pri-razvorachivanii-steka?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даровская Маша]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cloudflare-pojmala-redkij-bag-v-kompilyatore-go-dlya-arm64--padeniya-pri-razvorachivanii-steka</guid>
      <description><![CDATA[<p>На arm64 Go обнаружен баг: async preemption могла прервать корректировку стека и вызвать краш в runtime.(*unwinder).next. Исправлено в Go 1.24.6, 1.23.12 и 1.25.0+.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cloudflare-pojmala-redkij-bag-v-kompilyatore-go-dlya-arm64--padeniya-pri-razvorachivanii-steka">Cloudflare поймала редкий баг в компиляторе Go для arm64: падения при разворачивании стека</a>»</p>]]></description>
      <category><![CDATA[Компиляторы]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Golang]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Баги и ошибки]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 09 Oct 2025 11:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloudflare опубликовала технический <a href="https://blog.cloudflare.com/how-we-found-a-bug-in-gos-arm64-compiler/">разбор</a> редкой, но критичной проблемы в экосистеме Go: из-за ошибки в генерации кода для arm64 в некоторых случаях возникала гонка на уровне одной инструкции, приводившая к крашам рантайма при разворачивании стека (stack unwinding) в runtime.(*unwinder).next.</p><p>Cloudflare связала учащение «фатальных паник» на arm64 с кодом, где выполнялась работа с Netlink, но корневая причина оказалась глубже — в связанке компилятор ↔ ассемблер Go для arm64 и в том, как разбивалось большое смещение стека на две инструкции ADD со «сдвигом на 12 бит». Если прерывание попадало между этими двумя ADD, стековый указатель оказывался «наполовину скорректирован», и трассировщик стека считывал нерелевантные данные как адрес возврата, что заканчивалось segfault/фатальной паникой. Схожие аварии ранее <a href="https://github.com/golang/go/issues/73259">отмечали</a> и другие команды, в частности Datadog: именно в runtime.(*unwinder).next на Linux/arm64 (Go 1.23.x/1.24.x).</p><h2>Что именно ломалось</h2><ul><li>Сценарий сбоя: асинхронная предвыборка (preemption) <a href="https://github.com/golang/go/issues/63830">попадает</a> между двумя инструкциями корректировки SP (split ADD), после чего GC/трассировка начинают разворачивать некорректный фрейм, обращаясь по невалидному SP. Итог — падение в (*unwinder).next.</li><li>Подтверждение на практике: сходные трассы стеков и «рандомные» крэши на arm64 фиксировались у сторонних команд; проблема оформлена в ишью #73259 в репозитории Go и была <a href="https://github.com/golang/go/issues/73259">признана</a> кандидатом на бэкпорт.</li></ul><h2>Как починили (и какие версии содержат фикс)</h2><p>Исправление прошло через бэкпорт и доступно в поддерживаемых ветках Go:</p><ul><li>Go 1.24.6 — явное упоминание бэкпорта по <a href="https://github.com/golang/go/issues/74694">ишью #73259</a>.</li><li>Go 1.23.12 — <a href="https://go.dev/doc/devel/release">минор</a> с правками рантайма (включая бэкпорт по связанным arm64-сбоям).</li><li>Go 1.25.0 и новее — <a href="https://tip.golang.org/doc/go1.25">фиксация</a> на мажорной ветке.</li></ul><p>Суть изменения: вместо двух поочерёдных ADD для большого смещения теперь собирают оффсет в временный регистр и выполняют одну атомарную корректировку SP.</p><p>Это исключает «окно» между ADD-инструкциями и делает разворачивание стека предсказуемым даже при async preemption. (Подробные обсуждения и сопутствующие arm64-проблемы рантайма см. также в #<a href="https://github.com/golang/go/issues/63830">63830</a>, #<a href="https://github.com/golang/go/issues/65449">65449</a>, #<a href="https://github.com/golang/go/issues/73413">73413</a>.)</p><h2>Кому это важно</h2><ul><li>Все сервисы Go на arm64, где возможны большие стековые фреймы и активна асинхронная предвыборка (по умолчанию с Go 1.14+). В условиях продакшн-нагрузок редкая гонка становится статистически вероятной. Читайте подробнее: https://unskilled.blog/posts/preemption-in-go-an-introduction/</li></ul><h2>Что делать инженерам прямо сейчас</h2><ol><li>Обновиться до: Go 1.25.x или минимум до 1.24.6 / 1.23.12 (если «зажаты» веткой).</li><li>Пересобрать сервисы, критичные по доступности, и раскатить обновления в первую очередь на arm64-инфраструктуру.</li><li>Если апгрейд временно невозможен — минимизируйте большие стек-фреймы (вынос больших буферов в heap), снизьте вероятность попадания preemption в эпилог и проверьте зависимости на предмет собственного asm/unsafe-кода.</li><li>Отслеживайте релизы Go и связанные тикеты об unwinding/arm64 (см. #73259 и бекпорт #74694).</li></ol><p>Источники и материалы:</p><ul><li>Обсуждение с примерами падений: runtime: segfaults in runtime.(*unwinder).next (GitHub, #73259).  https://github.com/golang/go/issues/73259</li><li>Бэкпорт фикса в ветку 1.24: (GitHub, #74694) — релиз Go 1.24.6. https://github.com/golang/go/issues/74694</li><li>История релизов, минор Go 1.23.12 с правками рантайма. <a href="https://go.dev/doc/devel/release?utm_source=chatgpt.com">https://go.dev/doc/devel/release</a></li><li>Release notes Go 1.25 (фикс присутствует в мажорной ветке).  https://tip.golang.org/doc/go1.25</li><li>Ранние разборы проблем разворачивания стека/прерываний на arm64 https://github.com/golang/go/issues/63830</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare признала утечку данных после взлома Salesloft Drift — затронуты support-запросы клиентов</title>
      <link>https://tproger.ru/news/cloudflare-priznala-utechku-dannyh-posle-vzloma-salesloft-drift---zatronuty-support-zaprosy-klientov</link>
      <comments>https://tproger.ru/news/cloudflare-priznala-utechku-dannyh-posle-vzloma-salesloft-drift---zatronuty-support-zaprosy-klientov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cloudflare-priznala-utechku-dannyh-posle-vzloma-salesloft-drift---zatronuty-support-zaprosy-klientov</guid>
      <description><![CDATA[<p>Cloudflare подтвердила утечку данных через взлом Drift: хакеры получили переписки саппорта с контактами и токенами клиентов, но инфраструктура не пострадала</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cloudflare-priznala-utechku-dannyh-posle-vzloma-salesloft-drift---zatronuty-support-zaprosy-klientov">Cloudflare признала утечку данных после взлома Salesloft Drift — затронуты support-запросы клиентов</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Хакеры]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 03 Sep 2025 09:09:28 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloudflare <a href="https://blog.cloudflare.com/response-to-salesloft-drift-incident/">подтвердила</a> утечку клиентских данных из-за взлома Salesloft Drift — чат-виджета, интегрированного с CRM Salesforce. Через эту уязвимость хакеры получили доступ к тикетам, которые пользователи отправляли в поддержку.</p><p>Речь идёт не о взломе самих сервисов Cloudflare — инфраструктура компании осталась в безопасности. Но с 12 по 17 августа злоумышленники получили текстовое содержимое тикетов, включая переписки с саппортом и контактные данные клиентов.</p><h2>Что именно утекло</h2><p>Утекли заголовки тикетов, контактные данные клиентов и всё текстовое содержимое переписки. Это могут быть логины, токены, ключи, логи, пароли — если вы когда-либо вставляли их в обращение.</p><p>Файлы и вложения, прикреплённые к тикетам, не пострадали. Но всё, что вы писали в свободной форме — стоит считать скомпрометированным.</p><h2>Как Cloudflare отреагировала</h2><p>Компания отозвала все сторонние интеграции с Salesforce, провела расследование и отключила Drift от своей системы.</p><p>Из 104 обнаруженных утекших API-токенов Cloudflare, ни один пока не был использован, но все они уже отозваны «на всякий случай».</p><h2>Кто за этим стоит</h2><p>Атаку провела хакерская группа GRUB1. Они использовали доступ к OAuth-токену Drift, чтобы входить в Salesforce и выгружать данные. Атака была многодневной: сначала разведка, затем массовая выгрузка и удаление следов.</p><p>GRUB1 использовали инфраструктуру AWS и DigitalOcean, а также популярные open-source инструменты вроде Trufflehog. Cloudflare опубликовала IOCs (индикаторы компрометации), чтобы другие компании могли отследить похожие атаки.</p><h2>Масштаб и риски</h2><p>Cloudflare — не единственная жертва. Взлом Drift затронул сотни компаний, использующих эту интеграцию в своих Salesforce-средах. Это классическая атака на цепочку поставок.</p><p>По мнению Cloudflare, хакеры могли собирать данные для последующих таргетированных атак на клиентов затронутых компаний. Это не случайный слив, а подготовленная разведывательная операция.</p><h2>Что делать пользователям Cloudflare</h2><p>Cloudflare уже уведомила всех затронутых клиентов напрямую. Но даже если вы не получили письмо, рекомендуется:</p><ul><li>проверить переписки в техподдержке через Support Portal;</li><li>отозвать любые ключи, токены или пароли, которые могли быть в тикетах;</li><li>провести аудит сторонних SaaS-интеграций с CRM;</li><li>отключить Drift, если он используется в вашей системе;</li><li>пересмотреть политику доступа сторонних сервисов и настроить регулярную ротацию секретов.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare отбила крупнейшую DDoS-атаку в истории на 11,5 Тбит/с. Все шло с серверов Google Cloud</title>
      <link>https://tproger.ru/news/cloudflare-otbila-krupnejwuyu-ddos-ataku-v-istorii-na-11-5-tbit-s--vse-wlo-s-serverov-google-cloud</link>
      <comments>https://tproger.ru/news/cloudflare-otbila-krupnejwuyu-ddos-ataku-v-istorii-na-11-5-tbit-s--vse-wlo-s-serverov-google-cloud?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cloudflare-otbila-krupnejwuyu-ddos-ataku-v-istorii-na-11-5-tbit-s--vse-wlo-s-serverov-google-cloud</guid>
      <description><![CDATA[<p>Cloudflare отразила крупнейшую в истории DDoS-атаку мощностью 11,5 Тбит/с: UDP-флуд шёл с серверов Google Cloud и длился 35 секунд</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cloudflare-otbila-krupnejwuyu-ddos-ataku-v-istorii-na-11-5-tbit-s--vse-wlo-s-serverov-google-cloud">Cloudflare отбила крупнейшую DDoS-атаку в истории на 11,5 Тбит/с. Все шло с серверов Google Cloud</a>»</p>]]></description>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 03 Sep 2025 02:39:28 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloudflare зафиксировала и автоматически заблокировала самую мощную DDoS-атаку за все время наблюдений — ее <b>пик составил 11,5 Тбит/с</b>. Атака длилась всего 35 секунд, но пришла... с серверов <i>Google Cloud</i>.</p><h2>Что произошло?</h2><p>Cloudflare <a href="https://x.com/Cloudflare/status/1962559687368593552">сообщила</a>, что за последние недели ее инфраструктура отражала сотни гиперобъемных DDoS-атак.</p><p>Самая крупная достигла 11,5 Тбит/с и была реализована через UDP-флуд, преимущественно с IP-адресов, относящихся к Google Cloud. Пиковая частота пакетов <b>составила 5,1 млрд в секунду</b>.</p><p>Компания опубликовала визуализацию атаки, где видно, как трафик буквально «взрывает» сеть за считанные секунды:</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-09-03/25c2852c-dead-4d23-ab41-db9fe9105792.jpeg" alt="" /></figure><h2>DDoS-атаки становятся сильнее и чаще</h2><p>Инцидент случился спустя два месяца после предыдущего рекорда — атаки на 7,3 Тбит/с в июне 2025-го. А еще в октябре 2024 года Cloudflare остановила атаку на 3,8 Тбит/с.</p><p>За 2024 год Cloudflare:</p><ul><li>Зафиксировала <b>21,3 млн атак</b> на своих клиентов.</li><li>Пережила <b>6,6 млн атак</b> на собственную сеть.</li><li>Отразила <b>рост атак на 358% год к году</b>.</li><li>Отметила <b>509% рост сетевых атак</b> (SYN, SSDP, Mirai и др).</li></ul><h2>А при чем тут Google Cloud?</h2><p>Cloudflare напрямую указала, что источником трафика стали сервера Google Cloud. Это не означает, что Google инициировал атаку — скорее всего, злоумышленники использовали взломанные инстансы или открытые эндпоинты.</p><p>Тем не менее, <b>инцидент поднимает вопрос о контроле за злоупотреблением облачными платформами</b>: AWS, Azure и Google все чаще становятся площадками для DDoS-генерации.</p><h2>Почему это важно?</h2><ul><li>11,5 Тбит/с — это <b>в три раза больше</b>, чем предыдущий максимум 2024 года.</li><li>Защита от таких атак требует колоссальной инфраструктуры, которую <b>потянут далеко не все</b>.</li><li>Боты и ботнеты <b>становятся мощнее</b>, а облака — более удобным инструментом в их руках.</li><li>Растет тренд к <b>многоуровневым (multi-vector) атакам</b>, комбинирующим разные типы трафика.</li></ul><h2>Что дальше?</h2><p>Ожидается, что подобные инциденты будут происходить все чаще. Cloudflare, Microsoft и другие крупные игроки уже вкладываются в автоматическую DDoS-защиту, но большинство компаний остаются уязвимыми.</p>]]></content:encoded>
    </item>
    <item>
      <title>Российские Cloudflare: что выбрать для ускорения и защиты сайтов?</title>
      <link>https://tproger.ru/articles/rossijskie-cloudflare--chto-vybrat-dlya-uskoreniya-i-zashhity-sajtov-</link>
      <comments>https://tproger.ru/articles/rossijskie-cloudflare--chto-vybrat-dlya-uskoreniya-i-zashhity-sajtov-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даровская Маша]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/rossijskie-cloudflare--chto-vybrat-dlya-uskoreniya-i-zashhity-sajtov-</guid>
      <description><![CDATA[<p>После ухода иностранных облачных провайдеров защита и ускорение веб-ресурсов стали насущным вопросом для e-commerce, SaaS-сервисов, госорганизаций и финтеха. Мы собрали три ключевых российских аналога Cloudflare — NGENIX, DDoS-Guard и StormWall — и сравнили их по возможностям, тарифам, особенностям и реальным кейсам.
</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/rossijskie-cloudflare--chto-vybrat-dlya-uskoreniya-i-zashhity-sajtov-">Российские Cloudflare: что выбрать для ускорения и защиты сайтов?</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Финтех]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Дата-центр]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[CDN]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 29 Aug 2025 12:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<h2>NGENIX — комплексная защита и ускорение на базе российской инфраструктуры</h2><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-08-27/fb56ac54-67c2-456f-a582-15fa5a04bfd1.png" alt="" /></figure><p>Если нужно комплексное решение, единая платформа с привычным набором: DDoS-защита, антибот, WAF, DNS, CDN и другие необходимые для веба вещи, то есть платформа NGENIX — одна из ведущих российских альтернатив Cloudflare для проектов любого масштаба.</p><h3>Что такое NGENIX и почему его выбирают?</h3><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-08-27/85ed2a1d-fbd4-4f91-bfe5-3cd1ebad6e74.png" alt="" /></figure><p><a href="https://ngenix.net/?utm_source=tproger&amp;utm_medium=article&amp;utm_campaign=russian-cloudflare">NGENIX — российская облачная платформа</a>, которая сочетает в себе защиту от атак, ускорение загрузки, управление DNS и SSL-сертификатами, фильтрацию вредоносного трафика. Инфраструктура развернута в России и СНГ. Переезд с Cloudflare возможен за считанные часы, без риска блокировок Роскомнадзором и с техподдержкой, которая отвечает на русском с понятным SLA.</p><p><b>Основные функции и возможности платформы:</b></p><ul><li>Защита от DDoS — отражение атак до 7+ Тбит/с и 5 млн RPS, включая атаки на DNS;</li><li>Фильтрация вредоносных ботов — блокировка парсеров, скрейперов и автоматизированных атак;</li><li>Облачный WAF — предотвращает взломы и эксплуатацию уязвимостей;</li><li>Доставка контента (CDN) — благодаря распределённой сети из 50+ узлов в России и СНГ, запросы обслуживаются ближайшим к пользователю сервером;</li><li>Авторитативный DNS — отказоустойчивая система с обработкой до 100+ млн запросов в секунду;</li><li>SSL/TLS-сертификаты —  поддержка стандартов шифрования RSA, ECDSA и ГОСТ 34.10, автоматический выпуск и продление SSL-сертификатов Let's Encrypt, поддержка загрузки и использования собственных сертификатов (включая самоподписанные);</li><li>Управление доступом — организация доступа к сайту или приложению при помощи простых правил или подписанных ссылок;</li><li>Стриминг видео — стабильная передача в высоком качестве и в различных форматах;</li><li>Распределенный мониторинг доступности — возможность отслеживать доступность сайта 24/7, оперативно реагировать на инциденты и получать метрики доступности в формате Prometheus;</li><li>Аналитика — 35+ готовых отчётов с задержкой всего в 1 минуту.</li></ul><p>Всё это доступно через единый интерфейс.</p><h3>Инфраструктура под задачи любого масштаба</h3><ul><li>50+ узлов в РФ и СНГ — максимальная близость к пользователю;</li><li>Пропускная способность 7+ Тбит/с — запас на любые пиковые нагрузки;</li><li>На платформе используются разные виды балансировки: Anycast BGP, DNS и HTTP;</li><li>Единый SLA на все сервисы платформы;</li><li>Поддержка 24/7 с быстрой реакцией.</li></ul><h3>Реальный кейс: переход с Cloudflare за несколько часов</h3><p>Один из клиентов NGENIX — крупный московский девелопер — столкнулся с блокировкой Cloudflare со стороны Роскомнадзора. Благодаря оперативной техподдержке переход на NGENIX занял всего несколько часов.</p><p>В ходе миграции была подключена система защиты от DDoS и настроены индивидуальные правила доступа, что позволило не только полностью заменить функционал Cloudflare, но и сократить расходы на защиту без потери качества фильтрации и безопасности.</p><h3>Тарифы — под любые масштабы</h3><p>У NGENIX есть тарифы как для стартапов, так и для корпораций:</p><ul><li>Promo — 6 900 ₽</li><li>Lite — 13 900 ₽</li><li>Start — от 23 900 ₽</li><li>Pro — от 59 900 ₽</li><li>Ultimate — индивидуально, с кастомной настройкой, премиальным SLA и выделенным менеджером.</li></ul><h3>Кому подойдёт?</h3><ul><li>Владельцам, администраторам и командам как небольших и средних сайтов и сервисов, так и крупных проектов в сферах: e-commerce, SaaS, OTT, а также госструктурам и финтеху.</li><li>Компаниям, утратившим доступ к зарубежным облачным сервисам, нуждающимся в быстром и удобном переходе;</li><li>Командам с ограниченным количеством специалистов по безопасности — платформа обеспечивает комплексный набор функций под единым интерфейсом.</li></ul><p>Если вы использовали Cloudflare ради скорости, защиты и стабильности — NGENIX даст тот же набор инструментов, но с локальной инфраструктурой, без проблем с регуляторами и с поддержкой, которая говорит с вами на одном языке.</p><h2>DDoS-Guard: кастомная защита от атак уровня L3–L7 с гибкой настройкой под ваш проект</h2><p>Если вы думаете, что<a href="https://ddos-guard.ru/web-protection/?utm_source=tproger&amp;utm_medium=cpm&amp;utm_campaign=cf_alternative"> защита сайта от DDoS-атак</a> — это что-то вроде базового щита на периметре, который «где-то там» на краю сети отсекает подозрительный трафик, то стоит взглянуть, как работает DDoS-Guard. Эта платформа предлагает куда более глубинный подход: защита на всех уровнях от L3 до L7, с возможностью тонкой настройки под архитектуру вашего проекта.</p><h3>Не просто фильтр, а эшелонированная оборона</h3><p>DDoS-Guard — это инфраструктурная экосистема, которая умеет:</p><ul><li>отражать любые типы DDoS-атак: как волюметрические, так и прикладного уровня;</li><li>анализировать HTTP-трафик и блокировать вредоносные запросы в реальном времени;</li><li>оптимизировать TTFB и ускорять загрузку контента за счёт встроенного CDN;</li><li>маскировать реальный IP и строить эшелонированную защиту через Reverse Proxy;</li><li>управлять правилами фильтрации на уровне каждого домена, поддомена или даже URI;</li><li>кастомизировать защиту под конкретные угрозы: от скрейпинга до TOR-трафика.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-08-27/9c3299e6-c585-4c5e-9620-0389d7bdd223.png" alt="" /><figcaption>Можно установить фильтры для DDoS — все инструменты тонко настраиваются</figcaption></figure><h3>Защита на базе собственного софта и ИИ</h3><p>Вся фильтрация работает на программном обеспечении собственной разработки. Запросы анализируются на соответствие RFC, проверяются сигнатуры, выявляются аномалии — и только после этого принимается решение: пропустить, заблокировать или отправить на дополнительную проверку.</p><p>За счет использования anycast-маршрутизации и собственной сети узлов, DDoS-Guard минимизирует задержки — запросы обрабатываются на ближайшем к пользователю центре фильтрации. Это критично для e-commerce и финансов, где лишняя секунда отклика может стоить клиентской корзины.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-08-27/08020a0f-79bc-4732-b857-bab7c532da76.png" alt="" /><figcaption>Так выглядит статистика по атакам в личном кабинете</figcaption></figure><h3>Реальный кейс: защита одного из крупнейших онлайн-сервисов по продаже лекарств</h3><p>Один из клиентов DDoS-Guard — сервис из топ-3 аптечных агрегаторов в России — обратился с проблемой: высокий TTFB, нестабильная маршрутизация после сбоев и уязвимость к ботам и парсерам.</p><p>После миграции с Cloudflare результат оказался ощутимым:</p><ul><li>скорость сайта выросла на 40%;</li><li>появились гибкие правила фильтрации и кастомный каскад антискрейпинга;</li><li>доступность под нагрузкой восстановлена полностью.</li></ul><p>И всё это — без «боли» переезда: миграция прошла быстро, с сопровождением инженеров DDoS-Guard.</p><h3>Кому подойдёт?</h3><p>DDoS-Guard — это решение не только для корпораций. Сервис работает с банками, госорганами, e-commerce и телекомом, но в то же время:</p><ul><li>небольшим проектам  подойдёт тариф Basic (визитка, лендинг, каталог);</li><li>малому и среднему бизнесу — Normal и Medium с фильтрацией TOR, кастомными TLS-наборами;</li><li>крупным продуктам — Premium и Enterprise, где возможны уникальные L7-модули и фильтры на уровне API.</li></ul><p>Сегменты, где защита особенно критична: СМИ, маркетплейсы, финтех, игровые платформы, госуслуги.</p><h3>Что говорят внутри</h3><p>«Мы анализируем HTTP-запросы на лету, сверяясь с интернет-стандартами и нашими сигнатурами, — <b>рассказывает Дмитрий Никонов, руководитель веб-направления DDoS-Guard</b>. — Это позволяет блокировать атаки без ложных срабатываний и без тормозов. Наши клиенты могут гибко настраивать правила, в том числе каскадные сценарии защиты на каждый поддомен».</p><h2>StormWall: когда защита сайта — дело минут, а не дней</h2><p>Если ваш проект работает в интернете, то вопрос киберзащиты — это не «если», а «когда». DDoS-атаки стали буднями даже для малого бизнеса, не говоря уже о финансовых сервисах, SaaS, e-commerce или онлайн-играх. И вот тут в игру вступает <a href="https://stormwall.pro/migration?rs=content_tproger_cloudflare_migration">StormWall</a> — российский разработчик решений для защиты сайтов, сетей и онлайн-сервисов с опытом более 12 лет.</p><h3>Быстрая и комплексная защита от DDoS — без компромиссов</h3><p><a href="https://stormwall.pro/migration?rs=content_tproger_cloudflare_migration">StormWall</a> — это не просто прокси с анти-DDoS, а целая облачная экосистема, заточенная под разные типы инфраструктуры. Заказчику доступны сразу три варианта защиты:</p><ul><li>Для сайтов и приложений — включает DDoS-защиту, антибот, WAF;</li><li>Идеально для интернет-магазинов, медиа, финтеха и госсайтов;</li><li>Для сетей и автономных систем — работает на уровнях L3/L4, актуально для провайдеров, дата-центров и телекомов;</li><li>Для сервисов на базе TCP/UDP — используется в играх, VoIP, стриминге, VPN и других чувствительных к задержкам сервисах.</li></ul><p>За счёт собственной сети фильтрации с пропускной способностью 5+ Тбит/с и 9 дата-центров по всему миру, платформа может нейтрализовать даже самые сложные мультивекторные атаки.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-08-27/83022109-91f8-43a1-896b-0161a93f1db4.png" alt="" /><figcaption>Как отражаются DDoS-атаки, можно следить в реальном времени в Личном кабинете</figcaption></figure><h3>Антибот, WAF, CDN — всё из одного окна</h3><p>StormWall — это не только анти-DDoS. В арсенале платформы есть и другие полезные инструменты:</p><ul><li>Web Application Firewall (WAF) — защита L7 от SQL-инъекций, XSS и других попыток взлома;</li><li>Антибот — фильтрация трафика по сигнатурам и поведенческим признакам;</li><li>CDN — для ускорения контента, доставки видео, апдейтов и стабильной работы под нагрузкой;</li><li>DNS, reverse proxy, API gateway — всё интегрировано в инфраструктуру с управлением через личный кабинет.</li></ul><h3>Быстрая миграция, как это было у АТОЛ</h3><p>Весной 2022 года на облачные сервисы и онлайн-кассы АТОЛ обрушились мощные DDoS-атаки. Компания была вынуждена срочно искать профессиональное решение для защиты — и выбрала StormWall. За 10 минут специалисты развернули защиту, и уже через 30 минут вредоносный трафик был отфильтрован.</p><p>Даже при ежедневных DDoS-атаках мощностью 50–100 Гбит/с сервисы разработчика продолжают работать бесперебойно — клиенты-ритейлеры уверены в стабильности и надёжности его ПО.</p><figure><img src="https://media.tproger.ru/user-uploads/99854/2025-08-27/5ea6a917-ae5e-4fbc-9fc7-290bcfe55531.png" alt="" /></figure><h3>Кому подойдёт StormWall?</h3><ul><li>E-commerce и ритейл — устойчивость к пикам в «чёрную пятницу»;</li><li>Банки и финансы — SLA и отказоустойчивость на уровне инфраструктуры;</li><li>Госуслуги — соответствие реестру российского ПО;</li><li>Разработчики игр, стриминговые платформы, SaaS — защита TCP/UDP и CDN для скорости;</li><li>Малый бизнес — тарифы от 7 200 ₽ в месяц и помощь при миграции.</li></ul><h3>Почему выбирают StormWall</h3><ul><li>Поддержка 24/7, ответ до 15 минут;</li><li>Сервис как услуга — от настройки до сопровождения;</li><li>Собственные технологии на C с eBPF и DPDK, асинхронные микросервисы на Python и JavaScript;</li><li>Реестр российского ПО, лицензии СЗКИ/ТЗКИ;</li><li>Модульность и кастомизация фильтрации под каждого клиента;</li><li>Поддержка BGP, reverse proxy, API gateway, машинное обучение внутри фильтров.</li></ul><h3>Тарифы — от малого до enterprise</h3><ul><li>Для сайтов: от 7 200 ₽/мес;</li><li>Для сетей и сервисов: от 18 000 ₽/мес;</li><li>Enterprise — по запросу, под SLA, с кастомными модулями фильтрации.</li></ul><h2>Вывод: российские аналоги уже закрывают ключевые задачи Cloudflare</h2><p>После ухода зарубежных провайдеров рынок не остался пустым. NGENIX, DDoS-Guard и StormWall доказали, что могут обеспечить не только базовую защиту, но и полный набор сервисов для ускорения сайтов, фильтрации трафика и борьбы с ботами.</p><p>Если нужен комплекс «всё в одном» — с CDN, WAF, DNS и отказоустойчивостью, стоит смотреть на NGENIX: инфраструктура в России, понятный SLA и миграция за часы без проблем с регуляторами. DDoS-Guard — выбор для проектов, которым нужна глубина кастомизации и защита на всех уровнях L3–L7. StormWall берут за скорость внедрения и большой спектр решений — от сайтов до сетей и игровых сервисов.</p><p>Главный вывод: закрыть задачи Cloudflare в России сегодня реально — выбор зависит от масштаба бизнеса, критичности инфраструктуры и требований к гибкости настроек.</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare удалила ИИ-поисковик Perplexity из «белого списка» за игнорирование robots.txt и подмену IP</title>
      <link>https://tproger.ru/news/cloudflare-udalila-ii-poiskovik-perplexity-iz--belogo-spiska--za-ignorirovanie-robots-txt-i-podmenu-ip</link>
      <comments>https://tproger.ru/news/cloudflare-udalila-ii-poiskovik-perplexity-iz--belogo-spiska--za-ignorirovanie-robots-txt-i-podmenu-ip?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cloudflare-udalila-ii-poiskovik-perplexity-iz--belogo-spiska--za-ignorirovanie-robots-txt-i-podmenu-ip</guid>
      <description><![CDATA[<p>Cloudflare обвинила Perplexity в обходе robots.txt и подмене IP — бот исключён из белого списка и может быть заблокирован тысячами сайтов</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cloudflare-udalila-ii-poiskovik-perplexity-iz--belogo-spiska--za-ignorirovanie-robots-txt-i-podmenu-ip">Cloudflare удалила ИИ-поисковик Perplexity из «белого списка» за игнорирование robots.txt и подмену IP</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 05 Aug 2025 06:28:34 GMT</pubDate>
      <content:encoded><![CDATA[<p>Компания Cloudflare <a href="https://www.neowin.net/news/perplexitys-stealth-crawlers-exposed-in-new-cloudflare-report/">обвинила</a> Perplexity — популярный ИИ-поисковик — в нарушении сетевых этикета и попытках скрыть активность своих ботов.</p><p>По данным Cloudflare, Perplexity использует обходные методы для сбора данных с сайтов, даже если те явно запрещают такую активность через файл robots.txt.</p><p>В частности, расследование показало, что когда сайты блокируют официальный бот Perplexity, тот переключается на неуказанные user-agent — например, маскируется под обычный браузер Chrome.</p><p>Также Perplexity якобы использует IP-адреса вне заявленного пула и постоянно меняет автономные системы (ASN), чтобы избежать обнаружения. Cloudflare отмечает, что подобное поведение было замечено на десятках тысяч сайтов и включало миллионы запросов ежедневно.</p><h2>Больше не в белом списке</h2><p>Из-за таких практик, Cloudflare исключила Perplexity из списка «проверенных ботов». Это значит, что сайты, использующие защиту Cloudflare, теперь будут относиться к его трафику с большим подозрением, а сам бот может сталкиваться с ограничениями или полной блокировкой.</p><p>Для сравнения: компании вроде OpenAI указывают свои краулеры явно, уважают robots.txt и не пытаются обойти запреты. Cloudflare протестировала краулеры ChatGPT и подтвердила, что они прекращают сканирование при наличии disallow-директивы.</p><h2>Эвристическая защита — автоматическая оборона</h2><p>Чтобы остановить скрытые попытки краулинга, Cloudflare внедрила эвристическую защиту. Это не жесткая блокировка конкретного бота по имени, а система, которая отслеживает поведение: аномалии в частоте запросов, смену IP и другие признаки подозрительной активности.</p><p>Такая защита уже включена для всех клиентов Cloudflare — даже для тех, кто использует бесплатные тарифы. Пользователи с включенной бот-защитой автоматически получают защиту от обхода со стороны Perplexity и других похожих практик.</p><h2>Перспективы: регулирование и стандарты</h2><p>Cloudflare подчеркивает, что работает с экспертами по технической и политической части — в том числе с IETF — чтобы разработать новые расширения к robots.txt и зафиксировать стандарты поведения для «добросовестных» операторов ботов.</p><p>Это должно помочь отделять этичных игроков от тех, кто действует в обход.</p><p>Пока что же Perplexity, похоже, вступила в конфликт с одной из крупнейших инфраструктурных компаний в интернете. Если конфликт обострится, последствия могут затронуть видимость Perplexity в значительной части веба.</p>]]></content:encoded>
    </item>
    <item>
      <title>ИИ-поиск: почему люди перестали гуглить и как это меняет интернет</title>
      <link>https://tproger.ru/articles/ii-poisk--pochemu-lyudi-perestali-guglit-i-kak-eto-menyaet-internet</link>
      <comments>https://tproger.ru/articles/ii-poisk--pochemu-lyudi-perestali-guglit-i-kak-eto-menyaet-internet?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Виктория Эберт]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/ii-poisk--pochemu-lyudi-perestali-guglit-i-kak-eto-menyaet-internet</guid>
      <description><![CDATA[<p>Разбираемся, почему классический поиск уступает место ИИ-поисковикам, как генеративный ИИ меняет привычные правила поиска и что ждёт SEO эпоху ИИ-агентов ✔ Tproger</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/ii-poisk--pochemu-lyudi-perestali-guglit-i-kak-eto-menyaet-internet">ИИ-поиск: почему люди перестали гуглить и как это меняет интернет</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[SEO]]></category>
      <category><![CDATA[Оптимизация]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Hardware]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Новости]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[PHP]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Яндекс]]></category>
      <category><![CDATA[Intel]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Adobe]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Discord]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[CMS]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 25 Jul 2025 14:10:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Google два десятилетия был началом любого поиска. Сейчас всё чаще для этого открывают ChatGPT или другую нейросеть. Главное — не Google. Если раньше у нас был только Perplexity, то в декабре 2024 года OpenAI <a href="https://openai.com/index/introducing-chatgpt-search/">запустила</a> собственный Search — возможность искать информацию в интернете прямо в ChatGPT. Сейчас похожие функции есть у всех передовых моделей: Mistral Le Chat, DeepSeek, Claude, Gemini и даже у YandexGPT.</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-07-01/fe8754da-5704-4138-9200-c48b53a316cf.png" alt="ChatGPT Search" /><figcaption>Источник: OpenAI</figcaption></figure><p>Генеративный ИИ больше не просто инструмент для текстов. Он становится полноценной точкой входа в интернет: здесь ищут товары, сравнивают характеристики и даже принимают решения о покупке — всё в одном окне. За один только праздничный сезон 2024 года трафик из ИИ-инструментов в американском онлайн-ритейле вырос на 1300% — такие данные приводит <a href="https://blog.adobe.com/en/publish/2025/03/17/adobe-analytics-traffic-to-us-retail-websites-from-generative-ai-sources-jumps-1200-percent">исследование</a> Adobe.</p><p>По умолчанию ChatGPT работает без выхода в интернет и отвечает на основе своих знаний, накопленных при обучении. Но можно включить функцию вручную, нажав на значок глобуса 🌐 «Искать в сети». Модель сама понимает, что вам нужна актуальная инфа, и подключается к интернету автоматически — тогда вверху появляется плашка «Поиск в сети».</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-07-01/76cacb95-c320-49f6-93ae-565a0017979c.png" alt="ChatGPT ищет в интернете" /><figcaption>Плашка «Поиск в сети» в ChatGPT</figcaption></figure><p><b>Гуглить стало старомодно.</b> Аналитики заметили, что в англоязычной молодёжной среде глагол «гуглить» постепенно <a href="https://www.businessinsider.com/google-losing-status-as-verb-genz-2024-9">исчезает</a> — они говорят просто «search it». ChatGPT уже <a href="https://www.moneycontrol.com/technology/chatgpt-reached-1-billion-search-requests-a-day-5-5-times-faster-than-google-search-did-article-13105292.html?">обрабатывает</a> около 1 млрд поисковых запросов ежедневно. Это влияет на воронку продаж: многие шаги теперь проходят внутри чат-ботов. Бренды начинают перестраивать свои стратегии: мало быть видимым в поиске. Теперь нужно быть понятным и убедительным для нейросетей. Потому что завтра товары будут искать не люди, а их ИИ-агенты.</p><h2>Что не так с классической поисковой выдачей</h2><p><b>Слишком много кликов. </b>Первая страница выдачи забита рекламой, SEO-статьями, агрегаторами и рерайтами рерайтов. Чтобы получить один ответ, мало вбить запрос. Нужно пролистать рекламу, открыть пару сайтов, закрыть поп-апы с чатами и ещё проверить, что инфа свежая. И если результат не подошёл — начинаем всё заново.</p><p><b>SEO-мусор</b>. Ещё одна беда — это тонны переоптимизированного контента. Статьи написаны по шаблонам, чтобы понравиться алгоритмам и вписаться в критерии ранжирования. Если вы искали «что посмотреть в городе Х», то наверняка в топе были тревел-агрегаторы, забитые рекламой. Вместо живых впечатлений мы получаем скучные списки с дежурным набором достопримечательностей и призывом купить тур. Кроме того, такие статьи, как правило, обезличены, и не понятно, кто за ними стоит.</p><p><b>ИИ-контент. </b>Пользователь Reddit <a href="https://www.reddit.com/r/mildlyinfuriating/comments/1hsf0to/just_watched_john_wick_4_did_a_quick_search_to/">заметил</a>, что при поиске «John Wick 5» Google выдал кучу сгенерированного контента о проекте, который даже не анонсирован.<br /></p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-07-01/d2cf0c14-a335-4b75-8274-ff3dd710d6c4.png" alt="" /><figcaption>Источник: Reddit</figcaption></figure><p>В комментариях посоветовали использовать операторы — минус-ключи: -ai или -sponsored, чтобы исключить из результатов страницы с этими словами.</p><p>Проект <a href="https://github.com/CubicalBatch/deaddit">deaddit</a> документирует явление мёртвого интернета в формате ИИ-клона Reddit — поддельные посты, комментарии и целые сообщества, сгенерированные ИИ. С поддельными сабреддитами, названиями и описаниями, профилями пользователей с прописанными личностями и интересами, постами с заголовками, содержанием и даже количеством апвоутов, а также комментариями.</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-07-01/12c1e97f-8a1d-46ac-85db-b68fa784cd49.png" alt="" /><figcaption>Источник: GitHub / deaddit</figcaption></figure><p><b>Паттерны поиска меняются</b>. Всё меньше хочется читать безликие рекламные статьи, замаскированные под советы, и всё больше — слушать живых людей. 

Генеральный директор Reddit <a href="https://www.ft.com/content/a86fb03a-8781-40b5-a077-1d677e546ecf">похвастался</a>, что на фоне роста ИИ-контента именно Reddit остаётся площадкой с человеческим голосом.</p><p>Популярный <a href="https://www.newyorker.com/culture/infinite-scroll/what-google-search-isnt-showing-you">лайфхак</a>: добавлять в поисковые запросы слово «reddit» или оператор «site: reddit.com».</p><blockquote>Я часто добавляю «reddit» к своим запросам, потому что это одно из немногих мест, где можно прочитать настоящие мысли людей.</blockquote><p>Но не все так оптимистичны: звучат подозрения, что часть постов пишут боты.</p><blockquote>Я не доверяю Reddit. Когда дело доходит до рекомендаций, у меня всегда возникает ощущение, что ответы пишут боты, рекламирующие продукты</blockquote><p>Пользователи всё больше ощущают потерю «аутентичного интернета» и <a href="https://www.newyorker.com/culture/infinite-scroll/what-google-search-isnt-showing-you">ищут</a> обходные пути — обращаются к альтернативным поисковикам, вроде DuckDuckGo или Brave, и к другим площадкам, например, Discord или Telegram-чатам, которые не индексируются поисковиками. Или создают собственные поисковые движки — например, через Google Custom Search Engine, чтобы искать только по выбранным источникам.</p><h2>Почему ИИ-поиск быстрее выдает желаемое</h2><p><b>Нужно уметь гуглить в Гугле.</b> Традиционный поиск — это сложная штука, требующая мощностей для обработки миллиардов проиндексированных страниц. Google справляется с этим благодаря продвинутым алгоритмам, отточенным за годы исследований. Но этого уже мало.</p><p>Ключ к успеху — <b>правильная формулировка запроса</b>. Сколько раз вы в несколько подходов перебирали варианты, меняли порядок слов, перефразировали запросы или добавляли поисковые операторы — чтобы сузить поиск, найти точные совпадения или исключить лишнее? И если не угадали — результата не будет. К счастью, ИИ-поисковики снимают эту головную боль. Они учитывают контекст, а не только ключевые слова, даже если формулировка хромает.</p><p>Мэт Хонан, главный редактор MIT Technology Review, <a href="https://www.technologyreview.com/2025/03/17/1113255/is-google-playing-catchup-on-search-with-openai/">сравнил</a> Google AI Mode и ChatGPT. Он отметил ключевое преимущество последнего — функцию памяти и персонализации. Когда он спросил ChatGPT «Что ты знаешь обо мне?», модель ответила живо и подробно: рассказала о вкусах в кино, отношении к ужастикам и даже вспомнила историю с постройкой сарая. В то время как Google, обладая огромной базой пользовательских данных — почтой, историей поиска, фотографиями, — выдал сухой профиль: «Вы интересуетесь комедиями, музыкой, подкастами и классикой». Такой ответ скорее полезен рекламодателям, чем самому пользователю. На данный момент Google недотягивает до уровня персонализации, эмпатии и гибкости, которыми уже обладает ChatGPT.</p><h3>Длинные запросы и эра диалогового поиска</h3><p>ИИ меняет то, как мы ищем информацию. Если средний запрос в Google состоял из <a href="https://www.semrush.com/blog/google-search-statistics/">3–4</a> слов, то в диалоге с нейросетью мы составляем запрос на естественном языке в <a href="https://www.semrush.com/blog/chatgpt-search-insights/">20+</a> слов — с нюансами и уточнениями. Но главное новшество —<b> возможность задавать follow-up вопросы:</b> уточнения к предыдущему запросу. Раньше нужно было начинать с чистого листа. Теперь ИИ «помнит» контекст и способен адаптироваться и уточнять ответы. Причём вернуться к этому чату можно и через год, не объясняя задачу заново. А еще можно сразу адаптировать найденную информацию под нужный стиль — <i>«а попроще?», «а на русском?», «а в одну строку кода?».</i></p><p>Такой подход полезен там, <b>где ключевые слова бессильны </b>— например, можно найти фильм, где «<i>маньяк шлёт зашифрованные письма в газету</i>», спросить о странном звуке в холодильнике, или описать птицу, которая прилетает во двор.</p><p><a href="https://www.semrush.com/blog/chatgpt-search-insights/">Исследование</a> Semrush показывает, что ChatGPT меняет привычные представления о <b>поисковых намерениях</b>. Если в классическом поиске запросы обычно делят на четыре типа: навигационные (найти сайт), информационные (узнать что-то), коммерческие (исследовать товар) и транзакционные (купить), то у ChatGPT только около 30% запросов вписываются в эти категории. Остальные 70% — это совсем другие задачи, которые редко встречаются в традиционных системах. Люди обращаются к ИИ не просто за фактами, а чтобы генерировать идеи, проводить мозговой штурм и глубоко копать в теме.</p><p>На самом деле «умный» поиск — <b>не всегда быстрее обычного гугления</b>. В режиме глубокого исследования (Deep Research) ИИ-система может тратить десятки минут, чтобы собрать источники и выдать аналитику. Это уже не просто поиск, а полноценный ассистент-аналитик, который помогает подготовить обзор или черновик по сложной теме.</p><h2>Почему ChatGPT пока что плох в поиске: галлюцинации, спам и фейк-источники</h2><ol><li><b>Короткие запросы — всё ещё вотчина Google</b>. Пока что у ChatGPT получается <a href="https://techcrunch.com/2024/11/04/chatgpt-search-is-not-openais-google-killer-yet/">не очень</a>.</li><li><b>Слабая фильтрация SEO-спама</b> — классические поисковики годами инвестировали в борьбу с ним. Генеративные движки пока не так придирчивы: в ответах часто появляются вторичные источники и полусырые сгенерированные статьи.</li><li><b>Чрезмерное обобщение в ответах.</b> Из-за «переупаковки» контента в ответ модели мы получаем «усреднённую» версию истины, в которой важные нюансы могут быть утеряны. Даже если ИИ не выдает ложную информацию, он все равно суммаризует и переформулирует контент способами, которые могут вводить в заблуждение.</li><li><b>Поддакивание и стремление угодить</b>. Модель <a href="https://arxiv.org/abs/2310.13548">натренирована</a>, чтобы быть вежливой и полезной. Она пытается выдать ответ даже тогда, когда не может его найти. Не потому что хочет нас обмануть, а потому что не умеет сказать «нет». Поэтому соглашается с нами и может поддержать самые безумные идеи, например, <a href="https://x.com/icreatelife/status/1793781850923823144">призывает есть камни</a>.</li><li><b>Проблемы с локальными запросами</b>. ChatGPT не расскажет, во сколько приедет ваш поезд, и не уточнит, открыт ли ближайший супермаркет. Он может найти рестораны в районе, но за актуальным меню — всё равно придётся идти в Google.</li><li><b>Цитирование — боль</b>. Недавний <a href="https://www.cjr.org/tow_center/we-compared-eight-ai-search-engines-theyre-all-bad-at-citing-news.php">рисерч</a> Columbia Journalism Review выявил серьёзные проблемы в способности ИИ-поисковиков цитировать новости. Анализ восьми нейросетей показал, что они часто предоставляют неверные или вымышленные ссылки, даже если у них есть издательская лицензия.</li></ol><p>Проблема и в том, как люди <b>фактчекают информацию</b>. Мы идем по пути меньшего сопротивления и выбираем самые простые пути для поиска ответов. Точность и достоверность отходят на второй план, а приоритетом становится скорость и комфорт. Результаты <a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4498671">исследования</a> показывают, что люди считают информацию, сгенерированную ChatGPT, более качественной и доступной по сравнению с Google Search.</p><blockquote>Давайте будем реалистами — люди чрезвычайно ленивы. Они будут прилагать минимум усилий для достижения результатов. Даже если эти результаты отстойные. Людей это не волнует. <br /><br />Это значит, что люди скорее зададут вопрос чат-боту и поверят любому ответу, который он выдаст. Ведь это проще, чем набирать текст в Google, а затем читать или пролистывать кучу статей.</blockquote><p>Один из важных вопросов: как не потерять способность анализировать информацию самостоятельно? Ведь когда мы получаем готовый ответ от ИИ, можем перестать задумываться о том, как этот ответ был сформирован. Когда нейросеть даёт готовый, «отполированный» ответ, появляется соблазн воспринимать его как истину в последней инстанции — и перестать критически мыслить.</p><blockquote>Иногда ChatGPT полностью лжет мне, и я знаю это только потому, что у меня есть существующие знания, что это неправда. Если бы у меня их не было, я бы никогда не узнал, что это неправда...Поэтому я не могу полностью полагаться на ChatGPT и всегда проверяю разные источники.</blockquote><p>И это правда. Но и Google не гарантирует 100% точности в топе выдачи. Там тоже бывают ошибки, устаревшие данные или некачественные источники. Поэтому в любом случае важно проверять информацию и не полагаться слепо ни на ИИ, ни на поисковики.</p><h2>Как генеративный ИИ крадет трафик и деньги бизнеса</h2><p>ИИ теперь — как <b>посредник</b>: он «пережевывает» контент с сайтов: статьи, обзоры, новости — и выдает это пользователю в интерфейсе чат-бота. При этом юзер зачастую не доходит до первоисточника. Рэнд Фишкин из SparkToro <a href="https://sparktoro.com/blog/2024-zero-click-search-study-for-every-1000-us-google-searches-only-374-clicks-go-to-the-open-web-in-the-eu-its-360/">назвал</a> это <b>«поисками с нулевым кликом»</b>. И таких запросов становится всё больше.</p><p><b>Что это значит?</b> Контент журналистов, блогеров и брендов используется как сырьё, а сами авторы как будто остаются в тени — их труд не приносит прямого трафика.</p><h3>Почему эта ситуация — головная боль для бизнеса и контент-мейкеров?</h3><ul><li><b>Меньше посетителей — меньше клиентов</b>. Если пользователи не заходят на сайт, то и конвертировать их в покупателей или подписчиков становится гораздо сложнее. Трафик просто утекает в интерфейс ИИ. Если нейросеть пересказывает суть статьи прямо в чате, зачем открывать оригинал?</li><li><b>Потеря контроля над голосом бренда</b>. ИИ решает, как преподнести ваш контент — может вырвать из контекста, искажать или просто упустить важные детали. Бренд уже не может поправить этот «пересказ». А ещё никто не увидит ваш уникальный дизайн и фирменный стиль.</li><li><b>Рост нагрузки на серверы</b>. ИИ-ассистенты и агенты автоматически перебирают десятки источников при каждом запросе. Опенсорс-сообщество уже <a href="https://about.readthedocs.com/blog/2024/07/ai-crawlers-abuse/">жалуется</a>: их ресурсы просто падают под лавиной ботов. А если этим займутся ИИ-агенты от имени миллионов пользователей — нагрузка на сайты вырастет в разы.</li><li><b>Нарушение правил индексации</b>. Раньше страницы индексировали Google и пара конкурентов, которые уважали robots.txt — файл, который говорит, где можно, а где нельзя. Сейчас же десятки ИИ-моделей <a href="https://www.cjr.org/tow_center/we-compared-eight-ai-search-engines-theyre-all-bad-at-citing-news.php">парсят сайты без разбора</a>, игнорируя эти ограничения.</li><li><b>Проблемы с обучением ИИ и конфиденциальностью</b>. ИИ-боты могут брать контент с сайтов не только для ответов, но и для обучения своих моделей. То есть ваша статья, обзор или даже комментарий могут стать частью «учебного корпуса», который помогает ИИ выдавать более «умные» ответы. При этом авторы часто не получают ни копейки и даже не знают, что их материалы используются таким образом. Многие сайты начали блокировать ИИ-ботов, чтобы защитить свой контент. Wired <a href="https://www.wired.com/story/most-news-sites-block-ai-bots-right-wing-media-welcomes-them/">сообщает</a>, что практически 90% новостных сайтов, таких как NYT, Guardian, Atlantic и др., блокируют краулеры OpenAI и других ИИ-компаний.</li></ul><p>Если ИИ-разработчики продолжат брать контент без разрешения, их ждёт либо платный доступ к данным (они должны платить авторам за данные или переходить на лицензионную модель), либо война протоколов с нарушением веб-этикета. Ahrefs провели <a href="https://ahrefs.com/blog/ai-bot-block-rates/">исследование</a> — они проанализировали около 140 миллионов сайтов и обнаружили, что за последний год количество блокировок ИИ-ботов существенно выросло. Вот ключевые цифры:</p><ul><li>Число активных ИИ-ботов в сети удвоилось с августа 2023 года, сейчас насчитывается 21 крупный бот на основе ИИ.</li><li>Самый блокируемый бот — GPTBot от OpenAI: его блокируют почти 6% всех сайтов.</li><li>ClaudeBot (Anthropic) показал самый резкий рост блокировок — +32,67% за год.</li></ul><p>Получается, что для веб-мастеров заготовлена новая головоломка: как гарантированно попасть в выдачу нейросетей, если краулеры игнорируют robots.txt? И можно ли вообще вычеркнуть сайт из этих списков? Как оптимизировать облегчённую версию сайта для ИИ-агентов, чтобы не перегружать сервер и не потерять контроль над контентом?</p><p><a href="https://blog.cloudflare.com/declaring-your-aindependence-block-ai-bots-scrapers-and-crawlers-with-a-single-click/">Cloudflare</a> разработали «кнопку» блокировки AI‑ботов, чтобы снизить подобные нагрузки. Подключить эту функцию может любой пользователь Cloudflare, включая бесплатные тарифы. Компания, которая специализируется на защите сайтов от атак, заметила, что ежедневно на её сеть приходится около 50 миллиардов запросов от ИИ-ботов. В ответ они запустили AI Labyrinth — «лабиринт ИИ-контента», куда попадают незваные боты, игнорирующие директивы no crawl, где они застревают в бесконечной цепочке перелинкованных страниц.</p><h2>Переосмысление SEO в эпоху ИИ</h2><p>Классическое SEO уходит в прошлое. Чтобы оставаться на плаву, брендам и авторам нужно учиться говорить с ИИ на его языке. Вот почему появляются новые методы и направления — AIEO и GEO:</p><ul><li><b>AIEO (Artificial Intelligence Engine Optimization)</b> — оптимизация контента под ИИ-системы. Неважно, это голосовой помощник или чат-бот — задача AIEO сделать контент максимально понятным и «перевариваемым» для ИИ, чтобы он попадал в их ответы.</li><li><b>GEO (Generative Engine Optimization)</b> — это оптимизация именно под генеративные поисковые системы (например, Bing Chat, Google AI Mode).</li></ul><p>Пока никто толком не знает правил новой ИИгры. Но уже есть общие признаки, которые могут помочь нейросети выбрать именно ваш контент для цитирования:</p><ol><li><b>Чёткая структура</b>: подзаголовки H2 и H3, чтобы разбить текст на логичные блоки.</li><li><b>Короткие, простые абзацы</b> — никаких длинных занудных объяснений, только по делу.</li><li><b>Контент, который отвечает на вопросы</b>: «что это», «зачем нужно», «пример на практике». Не просто набор ключевых слов, а полезная информация.</li><li><b>Внешние упоминания и ссылки</b> — ИИ нравится, когда ваш контент не в изоляции, а подтверждён другими источниками.</li><li><b>Участие в специальных программах</b>: можно подать заявки в <a href="https://openai.com/chatgpt/search-product-discovery/">ChatGPT Product Discovery</a>, чтобы товар показывался в ответах ChatGPT или Perplexity Merchant Program — для крупных продавцов с доставкой в США, чтобы товары попадали в виджеты Perplexity.</li></ol><p><b>Как оценить эффективность?</b> Сейчас в аналитике уже можно увидеть переходы с нейросетей — они отображаются в отчетах по источникам трафика. Плюс появились метрики видимости бренда в ответах ИИ. Например, <a href="https://ahrefs.com/brand-radar">Ahrefs</a> теперь показывает, как часто ваш бренд упоминается в ответах нейросетей. А новые сервисы помогают мониторить появление бренда в ИИ-результатах, отслеживать тональность упоминаний и анализировать динамику.</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-07-01/44055a32-808d-4356-be23-2f33fa07fc62.png" alt="Карта GEO-рынка" /><figcaption>Карта GEO-рынка. Источник: a16z.com</figcaption></figure><p>Это похоже на SEO начала 2000-х, когда с каждым обновлением алгоритма приходилось перестраиваться. С ИИ та же история: модели постоянно меняются, и нам придётся учиться работать с ними заново — иначе рискуем потерять трафик.</p><h2>Конец эры поисковиков? Действительно ли нейросети заменят Google</h2><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-07-01/d4cc037b-7758-4a4a-ac2f-1c4b5143f02c.png" alt="" /><figcaption>Источник: onelittleweb</figcaption></figure><p><b>Стоит ли ожидать полного исчезновения поисковиков?</b> Вряд ли. Так же, как и исчезновения библиотек с появлением интернета. ИИ пока не заменит Google в роли поисковой системы, но классические поисковики со временем станут не актуальны из-за изменения природы потребления контента.</p><p>Пока Google лидирует, оставаясь примерно <a href="https://www.lifewire.com/chatbot-vs-search-engine-traffic-11760069">в 26 раз</a> популярнее ChatGPT по ежедневным визитам. Совокупно ИИ-сервисы генерируют всего около одного процента от всех поисков Google. Но скорость роста говорит сама за себя: чат-боты за год <a href="https://onelittleweb.com/ai-chatbots-vs-search-engines/#elementor-toc__heading-anchor-22https://onelittleweb.com/ai-chatbots-vs-search-engines/#elementor-toc__heading-anchor-22">выросли</a> по количеству обращений на 80,92%. Впервые с 2015 года, к концу 2024-го, доля Google на рынке поиска <a href="https://gs.statcounter.com/search-engine-market-share">опустилась</a> ниже отметки в 90%. Однако аналитики OneLittleWeb считают, что чат‑боты и поисковики не конкурируют, а дополняют друг друга — каждый решает свои задачи. Чат-боты расширяют возможности поиска, превращая его в диалог и помощь в генерации идей, а поисковики интегрируют ИИ-сводки, чтобы ускорить выдачу информации.</p><p>Поисковики превращаются в умных ассистентов, которые сами сканируют интернет и дают готовые ответы. Но есть проблема: Google AI Overviews уже бьют по доверию и <a href="https://www.bloomberg.com/news/articles/2025-04-07/google-ai-search-shift-leaves-website-makers-feeling-betrayed">трафику</a>. А главное — эти сводки <a href="https://www.tomshardware.com/tech-industry/artificial-intelligence/cringe-worth-google-ai-overviews">не всегда точны</a>. Техногигант тестирует ещё и <a href="https://search.google/ways-to-search/ai-mode/">AI Mode</a> — чат прямо в поиске, который синтезирует инфу из разных источников. Кнопка «Мне повезёт» <a href="https://www.theverge.com/news/665560/google-search-ai-mode-feeling-lucky-tests">уходит в прошлое</a> — теперь вам повезёт, если ИИ не нафантазирует лишнего. В России аналогичный тренд: Яндекс Нейро тоже объединяет классический поиск с генеративными нейросетями и умеет отвечать на комплексные запросы, копаясь в нескольких темах сразу. Поиск уходит в сторону диалогов и действий, и это уже не эволюция — это смена парадигмы.</p><p><b>Кто и как будет искать информацию завтра?</b> Мир движется к более удобным и быстрым способам получения информации. Возможно, скоро все мы перестанем вводить запросы в строку поиска и будем давать задания своим ИИ-агентам. Пока зарождаются новые стандарты — GEO и AIEO, бизнесу стоит задуматься не только о том, как попасть в ответ ИИ, но и как ИИ сможет <b>воспользоваться </b>его услугами. Нужны будут инструкции и цифровая инфраструктура, понятная для агентов. В мире, где задачи будет выполнять не человек, а агент, нужны понятные инструкции и цифровая инфраструктура. Намечается новый тренд — <a href="https://www.aitidbits.ai/p/agent-responsive-design">agent-responsive design</a>: сайты, которые удобны не только для людей, но и для ИИ.</p>]]></content:encoded>
    </item>
    <item>
      <title>Что по экологии? Сколько углеродного следа оставляет ваш код</title>
      <link>https://tproger.ru/articles/chto-po-ekologii--skolko-uglerodnogo-sleda-ostavlyaet-vaw-kod</link>
      <comments>https://tproger.ru/articles/chto-po-ekologii--skolko-uglerodnogo-sleda-ostavlyaet-vaw-kod?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/chto-po-ekologii--skolko-uglerodnogo-sleda-ostavlyaet-vaw-kod</guid>
      <description><![CDATA[<p>Узнайте, сколько CO₂ генерирует ваш код в 2025 году и как снизить углеродный след в IT. Практические советы по оптимизации архитектуры, выбору «зеленых» технологий и реальные кейсы компаний. Экологичное программирование — новый тренд для разработчиков и бизнеса.
</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/chto-po-ekologii--skolko-uglerodnogo-sleda-ostavlyaet-vaw-kod">Что по экологии? Сколько углеродного следа оставляет ваш код</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[C++]]></category>
      <category><![CDATA[Языки программирования]]></category>
      <category><![CDATA[Оптимизация]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Конференции]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Node.js]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[Amazon]]></category>
      <category><![CDATA[IBM]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Стартапы]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Сбер]]></category>
      <category><![CDATA[Дата-центр]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Kubernetes]]></category>
      <category><![CDATA[PostgreSQL]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[CI/CD]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 10 Jul 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>В 2025 году IT-индустрия потребляет больше энергии, чем крупная европейская страна  в 2010. <a href="https://www.iea.org/">По данным IEA</a> (International Energy Agency), дата-центры и телекоммуникационные сети уже отвечают за 3,7% глобальных выбросов CO₂ — это больше, чем производит авиация.</p><p>Казалось бы, код — это просто текст. Но каждый запрос к API, каждая компиляция и даже холостой цикл требуют энергии. Например, обучение GPT-4 в 2023 году «съело» столько же электричества, сколько 120 домохозяйств за год. А теперь представьте, что таких моделей тысячи, а серверов — миллионы.</p><p>Почему это важно? Во-первых, <a href="https://digital-strategy.ec.europa.eu/">регуляторы ужесточают требования</a>: в ЕС с 2025 года IT-компании обязаны раскрывать углеродный след своих продуктов. Во-вторых, инвесторы все чаще смотрят на ESG-рейтинги — показатели экологического и ответственного производства. В-третьих, оптимизация кода снижает затраты на инфраструктуру.</p><p>Эта статья — не манифест экоактивистов, а руководство для разработчиков, архитекторов и технических директоров компаний (СТО), которые стремятся более эффективные и экологичные проекты.</p><h2>Углеродный след кода: что скрывается за строчками</h2><p>Программное обеспечение — не виртуальный конструктор. Каждая операция требует электричества, а серверы, на которых работает код, часто питаются от невозобновимых источников энергии — например, угля и газа.</p><h3>Откуда берутся выбросы</h3><p>Когда мы говорим об углеродном следе ПО, важно понимать: код не существует в вакууме. Каждая строка, каждый запрос и каждая операция требуют физических ресурсов — электричества, серверного оборудования, систем охлаждения. В 2025 году эта цепочка стала еще сложнее из-за взрывного роста облачных вычислений и ИИ.</p><p>Прямые выбросы — это энергия, которую потребляют серверы при выполнении вашего кода. Например, один средний веб-сервер на AWS EC2 (тип t3.large) в год вырабатывает около 400 кг CO₂ — как небольшой автомобиль, проехавший 2000 км. При этом нагрузка на серверы постоянно растет: с 2020 по 2025 год энергопотребление дата-центров увеличилось на 35%.</p><p>Косвенные выбросы часто упускают из виду. Производство серверного оборудования — процесс крайне энергоемкий. Для создания одной только микросхемы памяти DDR5 требуется около 200 кВт⋅ч энергии — столько же, сколько средний холодильник потребляет за год. А после выхода оборудования из строя лишь 20% компонентов перерабатывается должным образом (<a href="https://globalewaste.org/">Global E-Waste Monitor 2024</a>).</p><p>Системы охлаждения — еще один скрытый источник выбросов. Современные дата-центры работают 24/7, и даже с использованием жидкостного охлаждения на поддержание температуры уходит до 40% всей потребляемой энергии. В жарких странах, ОАЭ или Сингапуре, этот показатель может достигать 50%.</p><p>Яркий пример — крупные языковые модели. Если в 2023 году обучение GPT-4 потребовало ~10 ГВт⋅ч (эквивалент годового потребления 120 домохозяйств), то к 2025 году из-за увеличения размеров моделей этот показатель вырос в 1,5 раза. Один запрос к такому ИИ теперь генерирует около 2 г CO₂ — как если бы вы проехали 10 метров на бензиновом автомобиле.</p><p>Но проблема не только в ИИ. Обычное веб-приложение с посещаемостью 100 000 пользователей в месяц может производить до 1 тонны CO₂ в год — и это без учета мобильных клиентов и API. При этом <a href="https://www.webpagetest.org/eco/">30% этой нагрузки приходится на неоптимизированный фронтенд</a>: тяжелые изображения, избыточные JavaScript-библиотеки и частые запросы к серверу.</p><p>Ситуацию усугубляет географический фактор. Дата-центр в Норвегии, где 98% энергии поступает от ГЭС, будет «чище», чем такой же центр в Польше, где угольные электростанции дают 70% энергии. <a href="https://app.electricitymaps.com/">Разница</a> в углеродном следе может быть 20-кратной для идентичных операций.</p><p>При этом стандарты измерения все еще остаются разрозненными. PUE (Power Usage Effectiveness), который используют Google и Microsoft, учитывает только эффективность инфраструктуры, но не источник энергии. Новый стандарт CUE (Carbon Usage Effectiveness), разработанный в 2024 году, уже включает эти данные, но его поддерживают менее 30% провайдеров.</p><h2>Где код тратит энергию впустую</h2><p>Некоторые части систем особенно вредны для экологии. Главные «пожиратели» ресурсов:</p><ul><li>Неоптимизированные алгоритмы. Сортировка пузырьком (O(n²)) на большом массиве данных может потреблять в 100 раз больше энергии, чем быстрая сортировка (O(n log n)).</li><li>Микросервисный хаос. Архитектура из сотен микросервисов увеличивает нагрузку на сеть. Каждый вызов API между сервисами — это дополнительные 0,5–1 Вт⋅ч.</li><li>Облачные провайдеры. Не все одинаково зеленые. AWS и Google используют 60–70% ВИЭ (возобновляемых источников энергии), но в Азии и Африке их дата-центры часто работают на угле.</li></ul><h3>Как измерить углеродный след</h3><p>В 2025 году появились инструменты, которые помогают оценить влияние кода:</p><ul><li>Cloud Carbon Footprint — анализирует выбросы AWS, GCP и Azure.</li><li>Scaphandre — мониторит энергопотребление серверов в реальном времени.</li><li>Greenframe.io — симулирует нагрузку на веб-приложение и считает CO₂.</li></ul><p>Климатические инициативы в IT больше не просто красивые слова в корпоративных отчетах. В 2025 году за неэффективный код можно получить не только порицание сообщества, но и вполне реальный штраф.</p><p>Европейский союз уже ввел санкции против пяти крупных SaaS-компаний за превышение углеродных квот, а Amazon Web Services выплатила 2,7 млн евро штрафа за неоптимизированные алгоритмы в своих сервисах.</p><h2>Как изменились подходы к разработке</h2><p>Эти тренды нацелены на долгосрочное действие и в перспективе должны полностью изменить текущую концепцию в разработке.</p><h3>Экологичный DevOps — новая реальность</h3><p>Современные системы автоматического масштабирования стали умнее. Kubernetes Horizontal Pod Autoscaler теперь учитывает не только нагрузку на CPU, но и текущий углеродный след дата-центра. Если в регионе пиковое потребление энергии и работают угольные электростанции, система сознательно ограничивает масштабирование.</p><p><a href="https://cloud.google.com/blog">Технология, разработанная Google</a> в партнерстве с WattTime, уже снижает выбросы CO₂ на 27-33% по сравнению с традиционным подходом.</p><p>CI/CD-цепочки тоже стали «зеленее». Вместо запуска полного набора тестов при каждом коммите, современные системы определяют, какие именно модули затронуты изменениями.</p><p><a href="https://carbonrunner.io/features/github-action-runners">GitHub Actions представил Carbon-Aware Runner</a>, который планирует выполнение задач на время максимальной доступности возобновляемой энергии в регионе. По данным Microsoft, это сокращает углеродный след тестирования на 40%.</p><h3>Языки программирования: война за эффективность</h3><p>Rust продолжает набирать популярность не только из-за безопасности, но и благодаря энергоэффективности. Тесты Benchmarks Game показывают, что один и тот же алгоритм обработки данных на Rust потребляет на 38-42% меньше энергии, чем на Python. В 2025 году Rust вошел в топ-5 языков для enterprise-решений, вытеснив Java в 17% крупных проектов.</p><p>Но настоящим открытием стал <a href="https://ziglang.org/documentation/master/">Zig </a>— язык, который сочетает производительность C с простотой синтаксиса. Его компилятор потребляет в 3 раза меньше ресурсов, чем LLVM-бэкенд Rust, что делает его идеальным выбором для встраиваемых систем.</p><h3>ИИ на грани: когда меньше значит лучше</h3><p>TinyML-революция набирает обороты. Современные нейросети для микроконтроллеров занимают менее 256 КБ памяти, но справляются с задачами, которые раньше требовали облачных вычислений.</p><p>Например, новые датчики Nest анализируют звук прямо на устройстве, определяя не только дым, но и тип возгорания. Это экономит до 150 МБ трафика в месяц на одно устройство.</p><p>На фронте больших языковых моделей тоже произошли изменения. Meta* выпустила LLaMA-3 Nano — модель с 500 млн параметров, которая работает на смартфоне и по качеству ответов не уступает GPT-3.5. Ее углеродный след при обучении в 1200 раз меньше, чем у GPT-4.</p><p><i>(*Компания запрещена в РФ)</i></p><h3>Новые правила игры: регуляторы и бизнес</h3><p>С января 2025 года в Евросоюзе действует Углеродный налог на цифровые продукты (Digital Carbon Border Tax). Теперь любое ПО, продающееся в ЕС, должно иметь сертификат углеродной эффективности.</p><p>Для крупных enterprise-решений максимально допустимый углеродный след составляет 500 г CO₂ на 1000 пользователей в месяц. Нарушители платят 7% от оборота продукта в регионе.</p><p>Венчурные фонды радикально изменили подход к инвестициям. <a href="https://www.pwc.com/gx/en/services/sustainability/publications.html">Согласно отчету PwC</a>, 43% фондов требуют ESG-отчетность перед заключением сделки, а 28% вообще не рассматривают стартапы без «зеленой» стратегии. В Кремниевой долине появился первый акселератор Carbon Neutral Startups, который дает бонусы в $50 000 проектам с нулевым углеродным следом.</p><p>Корпорации тоже не остались в стороне. <a href="https://www.microsoft.com/sustainability">Microsoft ввела внутренний углеродный налог</a> — теперь каждое подразделение платит $100 за каждую тонну CO₂, связанную с его продуктами. Эти деньги идут на развитие возобновляемой энергетики.</p><p>Но самое интересное происходит на рынке труда. Разработчики с навыками «зеленого» программирования получают на 15-20% больше предложений. Появилась появилась новая категория навыков — «Устойчивая разработка ПО», а спрос на таких специалистов вырос на 300% за последний год.</p><h2>Как писать «зеленый» код</h2><p>Каждая лишняя операция в коде — это не только миллисекунды процессорного времени, но и реальные граммы CO₂. В 2025 году энергоэффективность кода перестала быть теоретической концепцией и превратилась в конкретный навык, который влияет на карьеру разработчика. Рассмотрим три ключевых направления оптимизации.</p><h3>Оптимизация запросов к базе данных</h3><p>Типичный пример — использование SELECT * вместо явного перечисления полей. Когда приложение запрашивает все поля таблицы users (включая редко используемые avatar_blob или metadata_json), сервер БД тратит дополнительные ресурсы на чтение и передачу этих данных. В крупных системах с миллионами запросов в день это приводит к значительному перерасходу вычислительных ресурсов.</p><p>Современные ORM типа Prisma и Drizzle добавили автоматическую оптимизацию запросов. Теперь при использовании select() они анализируют, какие поля действительно нужны на клиенте, и генерируют оптимальный SQL. В тестах это снижает нагрузку на БД на 12-18%.</p><h3>Работа с циклами и алгоритмами</h3><p>Классическая ошибка — продолжать перебор массива после нахождения нужного элемента. В 2025 году статический анализатор кода в WebStorm и VS Code автоматически предупреждает о таких ситуациях. Особенно критично это для мобильных приложений: лишние итерации цикла на слабых устройствах увеличивают энергопотребление на 5-7%.</p><p>Новые версии JavaScript и TypeScript ввели оптимизированные методы для массивов. Например, array.findLast() работает в 1,5 раза эффективнее ручной реализации с циклом. Для сложных алгоритмов появились «зеленые» библиотеки вроде EcoCollections для Java, которые минимизируют энергопотребление при работе с структурами данных.</p><h3>Сжатие и передача данных</h3><p>Формат Brotli стал новым стандартом для API: он обеспечивает лучшее сжатие, чем gzip, особенно для JSON-ответов. Компания Cloudflare провела эксперимент: после перехода на новую версию Brotli нагрузка на их серверы снизилась на 18%, что эквивалентно годовому потреблению энергии 2000 домохозяйств.</p><p>Но сжатие — не панацея. Грамотное проектирование API может дать больший эффект. GraphQL-подход, где клиент запрашивает только нужные данные, в среднем почти вдвое уменьшает объем передаваемой информации по сравнению с REST. А технология Server-Sent Events (SSE) для реального времени потребляет в 3 раза меньше ресурсов, чем WebSockets, когда не нужна двусторонняя связь.</p><p>Современные фреймворки начали учитывать энергоэффективность. Next.js 15 <a href="https://nextjs.org/blog">представил «зеленый» режим компиляции</a>, который оптимизирует сборку под минимальное энергопотребление. В тестах это дало 8% экономии на процессоре при работе приложения. А Deno 2.0 автоматически кэширует зависимости на уровне ОС, сокращая число повторных загрузок.</p><p>Эти изменения кажутся мелкими, но в масштабах индустрии они имеют огромное значение. Если бы все репозитории на платформе применили базовые оптимизации, глобальное энергопотребление дата-центров сократилось бы на несколько процентов. Для отрасли, которая потребляет 700 ТВт⋅ч в год, это десятки миллионов долларов и тысячи тонн CO₂.</p><h2>Выбор технологий</h2><p>В 2025 году выбор стека технологий влияет не только на производительность, но и на экологичность проекта. Разберем ключевые аспекты, которые помогут снизить углеродный след вашего приложения.</p><h3>Языки программирования: баланс между скоростью и эффективностью</h3><p>Rust и Go продолжают доминировать в высоконагруженных системах. Тесты показывают, что веб-сервер на Rust потребляет на 35-40% меньше энергии при одинаковой нагрузке по сравнению с Node.js. Особенно заметна разница в облачных средах, где каждый ватт на счету.</p><p>C++ остается выбором для задач, где важна предсказуемая производительность. Новый стандарт C++26 добавил энергоэффективные режимы работы алгоритмов STL, что особенно важно для встраиваемых систем.</p><p>Python по-прежнему хорош для прототипирования, но в продакшене его лучше заменять на компилируемые языки. PyPy 8.0 сократил энергопотребление интерпретатора на 25%, но даже с этими улучшениями Python проигрывает Rust в 3-4 раза по эффективности.</p><h3>Базы данных: от малого к большему</h3><p>SQLite — идеальный выбор для небольших проектов и edge-устройств. Его новая версия 3.45 добавила режим «энергосбережения», который снижает потребление на 15% при фоновых операциях.</p><p><a href="https://www.postgresql.org/docs/17/release-17.html">PostgreSQL 17</a> сделал большой шаг в энергоэффективности. Функция автоматического партиционирования теперь учитывает не только производительность, но и энергопотребление. В тестах это дало 20% экономии на крупных аналитических запросах.</p><p>Для высоконагруженных систем появилась альтернатива — ScyllaDB 5.0. Эта Cassandra-совместимая СУБД потребляет втрое раза меньше энергии при аналогичной нагрузке, благодаря полному переписыванию на Rust.</p><h2>Кейсы: что работает, а что нет</h2><p>Российские компании тоже внедряют экологичные IT-решения. МТС разработала мобильное приложение, где пользователи получают бонусы за раздельный сбор мусора — их можно обменять на подписки или скидки. За первый год проект привлек 500 тысяч участников и сократил количество непереработанных отходов в регионах присутствия.</p><p>НИУ ВШЭ, совместно с Росприроднадзором, автоматизировал сбор экологической отчетности с помощью ИИ. Нейросеть анализирует данные с датчиков и заполняет формы вместо специалистов. Это сократило время обработки с 100 до 10 часов в месяц и уменьшило количество ошибок.</p><p>Некоторые архитектурные решения приносят больше вреда, чем пользы. Один московский стартап без необходимости разбил монолитную систему на 50 микросервисов — в результате затраты на инфраструктуру выросли в 3 раза, а углеродный след увеличился на 180%.</p><p>Проблемы возникают и на уровне зависимостей. История с left-pad повторилась в 2024 году, когда один npm-пакет потянул за собой 80 МБ ненужных библиотек. Теперь крупные компании проверяют каждую зависимость через Bundlephobia и устанавливают лимит на размер node_modules.</p><h2>Что нас ждет</h2><p>В 2025 году отрасль стоит на пороге радикальных изменений, которые перевернут наши представления о «зеленом» программировании.</p><p>Супероблака — следующий этап эволюции распределенных вычислений. В отличие от традиционных облачных провайдеров, эти системы автоматически переносят нагрузку между дата-центрами в зависимости от доступности возобновляемой энергии.</p><p><a href="https://cloud.google.com/sustainability">Google уже тестирует эту технологию</a> в Северной Европе: когда в Норвегии дует сильный ветер и ветряные электростанции работают на пике, система переносит вычисления именно туда. По предварительным оценкам, это снижает углеродный след на 18-22% по сравнению со статичным распределением.</p><p>Но настоящий прорыв ожидается в сегменте квантовых вычислений. Хотя современные квантовые компьютеры потребляют колоссальное количество энергии (система IBM Quantum System One требует около 25 кВт⋅ч для работы одного кубита), их потенциал для оптимизации классических алгоритмов огромен.</p><p>В 2024 году исследователи из ЦЕРНа <a href="https://www.nature.com/articles/s41534-024-00859-0">предложили квантовый алгоритм</a>, который сокращает время сложных расчетов в 1000 раз при той же точности. Когда такие решения станут массовыми (прогноз — 2028-2030 годы), энергопотребление дата-центров может сократиться на 30-40%.</p><p>Государственное регулирование становится строже. В 2025 году в силу вступает EU Digital Product Passport — требование указывать углеродный след для всего ПО, продающегося в Европе.</p><p>Компании, которые не смогут предоставить эти данные, столкнутся с дополнительными налогами до 7% от оборота. В ответ на это крупнейшие IT-корпорации создали Carbon Neutral Software Alliance — консорциум по разработке единых стандартов измерения.</p><p>Не отстает и аппаратная часть. Производители чипов переходят на новые техпроцессы: TSMC анонсировала 2-нм процесс, который на 30% энергоэффективнее предыдущего поколения. А стартапы вроде британской ZeroPoint Technologies разрабатывают память с нулевым энергопотреблением в режиме ожидания — технология может сократить энергопотребление серверов на 15%.</p><p><b>Но главный тренд </b>— децентрализация вычислений. Edge-устройства (от смартфонов до промышленных датчиков) становятся мощнее и берут на себя часть нагрузки. Например, новый алгоритм Apple для обработки фото на iPhone 16 выполняет 90% операций локально, а не в облаке. По оценкам компании, это экономит сотни тысяч тонн CO₂ в год только для пользователей в США.</p><p>Однако остаются и <b>проблемы</b>. Бум генеративного ИИ привел к взрывному росту энергопотребления: одна тренировка модели Gemini Ultra потребляет столько же энергии, сколько небольшой город за месяц. OpenAI и Anthropic уже работают над более эффективными архитектурами, но прорыва пока не случилось.</p><p>В ближайшие 3-5 лет нас ждет:</p><ul><li>массовый переход на углеродно-нейтральные дата-центры — к 2027 году их доля превысит 60%;</li><li>внедрение AI-оптимизаторов кода, которые автоматически сокращают энергопотребление;</li><li>появление «зеленых» рейтингов для приложений — аналог энергоэффективности для бытовой техники.</li></ul><p>Компании, внедрившие принципы устойчивого развития в IT, уже в 2025 году получают на больше инвестиций и быстрее проходят аудит регуляторов. Экологичность перестала быть затратой — теперь это конкурентное преимущество.</p><p>Технологии будущего уже здесь. Вопрос в том, насколько быстро мы сможем их адаптировать. Как сказал Дженсен Хуанг из NVIDIA на последней конференции GTC:</p><blockquote>«Следующее десятилетие определит, станет ли IT частью климатического решения или останется проблемой. Выбор за нами».</blockquote><h2>Итоги</h2><p>Экологичность в IT — не благотворительность и не актуальная повестка, а реальная экономия. Плюс работа на перспективу. Оптимизация кода снижает счета за облака и повышает производительность.</p><p>С чего начать? Начните с малого:</p><ol><li>Запустите аудит через Cloud Carbon Footprint.</li><li>Уберите «мусор» из зависимостей.</li><li>Выберите хостинг с ВИЭ.</li></ol><p>Как говорил Дональд Кнут, автор книги «Искусство программирования»:</p><blockquote>«Преждевременная оптимизация — корень всех зол. Но и запоздалая — тоже».</blockquote><p>В 2025 году это актуально как никогда.</p>]]></content:encoded>
    </item>
    <item>
      <title>Половина интернета вышла из строя из-за сбоя в Google Cloud. Что пошло не так?</title>
      <link>https://tproger.ru/news/polovina-interneta-vywla-iz-stroya-iz-za-sboya-v-google-cloud--chto-powlo-ne-tak-</link>
      <comments>https://tproger.ru/news/polovina-interneta-vywla-iz-stroya-iz-za-sboya-v-google-cloud--chto-powlo-ne-tak-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/polovina-interneta-vywla-iz-stroya-iz-za-sboya-v-google-cloud--chto-powlo-ne-tak-</guid>
      <description><![CDATA[<p>Масштабный сбой в Google Cloud лишил доступа к Gmail, Cloudflare и Claude — ошибка в IAM нарушила работу интернета на 7 часов</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/polovina-interneta-vywla-iz-stroya-iz-za-sboya-v-google-cloud--chto-powlo-ne-tak-">Половина интернета вышла из строя из-за сбоя в Google Cloud. Что пошло не так?</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 13 Jun 2025 09:26:52 GMT</pubDate>
      <content:encoded><![CDATA[<p>Накануне, 12 июня 2025 года, интернет <a href="https://forgecode.dev/blog/gcp-cloudflare-anthropic-outage/">охватил</a> масштабный сбой: из-за ошибки в сервисе аутентификации Google Cloud (IAM) перестали работать десятки продуктов — от Gmail и Drive до Cloudflare и Anthropic.</p><p>Проблема длилась более семи часов и показала, насколько уязвимы современные цифровые экосистемы.</p><h2>Что произошло</h2><p>В 20:50 по московскому времени в системе IAM Google Cloud начались сбои. Этот сервис отвечает за проверку доступа и выдачу токенов всем API.</p><p>Когда IAM перестал справляться с запросами, это затронуло почти все остальные сервисы GCP — от хранилищ и баз данных до ИИ-сервисов.</p><h2>Хронология событий</h2><ul><li>20:51 — внутренние алерты Google: IAM возвращает ошибки 5xx</li><li>21:05 — на DownDetector резко растут жалобы на Gmail, Drive и Meet</li><li>21:19 — Cloudflare сообщает о сбоях в Access</li><li>21:25 — Anthropic отключает загрузку файлов, чтобы снизить нагрузку</li><li>22:41 — Google внедряет исправления в IAM, большая часть регионов восстанавливается</li><li>23:30 — Cloudflare восстанавливает работу Access, KV и WARP</li><li>00:05 — Anthropic сообщает о полном восстановлении Claude</li><li>04:18 — полное восстановление сервисов GCP, включая Vertex AI</li></ul><h2>Причины сбоя</h2><p>Google подтвердила, что сбой произошел из-за некорректного обновления бэкенда IAM. Обновление попало в продакшен раньше, чем его смогли отловить тесты в ограниченных зонах.</p><p>Ошибка распространилась по всем регионам, и только откат, удаление некорректной конфигурации и принудительное обновление кэша токенов помогли восстановить систему.</p><h2>Уроки для разработчиков</h2><p>Произошедшее показало, что сбои в control-plane (аутентификация, метаданные) опаснее сбоев в data-plane (файлы, запросы). Также стало более явно, что даже multi-cloud архитектуры могут зависеть от одного слабого звена в глубине стека.</p><p>Из прочих уроков аварии можно отметить:</p><ul><li>Страницы статуса должны обновляться оперативно — Google потребовался почти час</li><li>Необходимы обходные маршруты для критичных точек (например, авторизации)</li><li>План реагирования должен включать редкие, но возможные каскадные сбои</li></ul><h2>Итоги</h2><p>Ошибка в одном компоненте Google Cloud вызвала сбои в десятках сервисов по всему миру. В течение семи часов компании теряли доступ к данным, пользователи не могли авторизоваться, а инженеры — найти причины проблемы.</p><p>Полный отчет от Google и Cloudflare пока в разработке. Но уже ясно, что даже самые крупные игроки не застрахованы от сбоя, если в центре — непротестированное обновление и скрытые зависимости.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как разработать простое приложение и тратить на него 2000$ в месяц</title>
      <link>https://tproger.ru/articles/kak-razrabotat-prostoe-prilozhenie-i-tratit-na-nego-2000--v-mesyac</link>
      <comments>https://tproger.ru/articles/kak-razrabotat-prostoe-prilozhenie-i-tratit-na-nego-2000--v-mesyac?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Анна Ельцова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-razrabotat-prostoe-prilozhenie-i-tratit-na-nego-2000--v-mesyac</guid>
      <description><![CDATA[<p>Разработчик показывает, как из простого приложения сделать дорогостоящее — за счет трат на сервера, инфраструктуру и многое другое.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-razrabotat-prostoe-prilozhenie-i-tratit-na-nego-2000--v-mesyac">Как разработать простое приложение и тратить на него 2000$ в месяц</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Redis]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Kubernetes]]></category>
      <category><![CDATA[PostgreSQL]]></category>
      <category><![CDATA[Grafana]]></category>
      <category><![CDATA[VPS]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 06 Jun 2025 12:31:20 GMT</pubDate>
      <content:encoded><![CDATA[<p>Да, из простого приложения можно создать такую архитектуру, которая будет стоить более $2000 в месяц. В этом <a href="https://www.youtube.com/watch?v=nYlv0I9Ips0">видео</a> разработчик показывает, как пошагово усложнять инфраструктуру простого приложения для задач, добавляя все больше и больше компонентов. А чтобы вам было проще сориентироваться — мы адаптировали его на русский.</p><h2>Этап 1: Простой MVP за $0</h2><p>Изначально нужно создать максимально простое приложение для управления задачами: веб-страница с несколькими категориями и возможностью добавлять таски. На фронте разработчик использует библиотеку Shad CN UI, а на бэке — Flask. Данные хранятся просто в словаре Python. Все приложение — это один файл. Оно запускается в Docker-контейнере через docker compose.</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-06-06/b4963af4-3c83-4697-a8be-848850a1ee82.png" alt="" /></figure><p>Это MVP работает локально на компьютере разработчика и рассчитано на одного пользователя. Такой подход позволяет всё упростить, но при перезапуске контейнера все данные будут утеряны. Правда, чтобы получить прибыль, этого недостаточно.</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-06-06/cced47f6-e8b2-40dd-a540-476a233e217e.png" alt="" /></figure><h2>Этап 2: Инфраструктура на $30</h2><p>Чтобы приложение стало более удобным и приближенным к продакшену, разраб добавляет несколько главных компонентов:</p><ul><li><b>База данных:</b> PostgreSQL.</li><li><b>Веб-сервер:</b> Nginx для проксирования запросов и избавления от портов.</li><li><b>Аутентификация: </b>авторизация через JWT и интерфейсы входа и регистрации на фронтенде.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-06-06/e903bb53-7168-4485-9d3a-a11f68015901.png" alt="" /></figure><p>Все эти компоненты подключаются к существующему приложению через docker-compose.yml. Благодаря этому теперь можно запускать приложение на localhost, а не по порту, и все будет работать как полноценное веб-приложение. Размещение такой системы на бесплатном облачном тарифе или VPS обойдётся в пределах 30 долларов.</p><h2>Этап 3: Допиливание до $100</h2><p>Разработчик добавляет допфункции:</p><ul><li><b>Уведомления по email:</b> вместо стороннего API — система очередей с RabbitMQ и воркером, который отправляет письма.</li><li><b>Обновления в реальном времени:</b> WebSocket’ы для синхронизации задач на разных устройствах.</li><li><b>Кэширование:</b> Redis для хранения данных в памяти, что значительно ускоряет работу.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-06-06/4a4ace77-7e6c-4e2f-b8a3-03943a57254a.png" alt="" /></figure><p>Также подключается Docker Build Cloud — сервис для параллельной сборки контейнеров и шаринга кеша между проектами. Это повышает производительность и ускоряет разработку.</p><p>Теперь в системе работает очередь заданий, кеш, WebSocket-сервер, SMTP и полноценная база данных. Все эти компоненты увеличивают инфраструктурные затраты до примерно $100 в месяц.</p><h2>Этап 4: Мониторинг и масштабирование за $500</h2><p>Разработчик внедряет:</p><ul><li><b>Логирование:</b> стек ELK (Elasticsearch, Logstash, Kibana).</li><li><b>Мониторинг:</b> Prometheus и Grafana.</li><li><b>Горизонтальное масштабирование:</b> добавляются реплики некоторых сервисов и балансировка нагрузки через Nginx.</li></ul><p>Эти инструменты позволяют отслеживать метрики, визуализировать логи, следить за состоянием приложений и быстро выявлять сбои. Инфраструктура становится ближе к корпоративному уровню. Стоимость такого комплекса достигает уже около 400–500 долларов в месяц.</p><h2>Этап 5: Целых $2000 долларов</h2><p>Разработчик решает перейти на Kubernetes и развернуть приложение в разных дата-центрах по всему миру. Для управления трафиком используется глобальный балансировщик нагрузки (например, Cloudflare). А чтобы все работало стабильно, внедряются:</p><ul><li>Postgres с репликацией в реальном времени,</li><li>Redis для быстрой отдачи данных.</li></ul><p>Сейчас без ИИ приложение уже не имеет смысла. Поэтому разработчик решает добавить серверлесс-функции с категоризацией задач, приоритетами и предложениями на основе поведения пользователей, а также с использованием обработки естественного языка для создания тасков. Также подключаются правовые ограничения — поддержка GDPR и CCPA.</p><p>Для мониторинга:</p><ul><li>Jaeger — для распределённой трассировки,</li><li>ELK Stack — для логов,</li><li>Grafana + PagerDuty — для алертов и инцидентов.</li></ul><p>Вишенка на торте — план восстановления после катастроф: бэкапы, автоматическое переключение на другие регионы и подготовка команды.</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-06-06/399735e5-c8d1-4003-9ed2-91d9e5b83764.png" alt="" /></figure><p>Хотя вся система началась с одного Python-файла и простого UI, шаг за шагом разработчик добавлял в нее компоненты, которые делают её пригодной для реального продакшена: защита, масштабируемость, отказоустойчивость, мониторинг, кеширование и очереди. И оно вполне может стоить несколько сотен или даже тысяч долларов в месяц при развертывании в облаке.</p>]]></content:encoded>
    </item>
    <item>
      <title>Защита API-ключей: как избежать утечек</title>
      <link>https://tproger.ru/articles/zashhita-api-klyuchej--kak-izbezhat-utechek</link>
      <comments>https://tproger.ru/articles/zashhita-api-klyuchej--kak-izbezhat-utechek?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/zashhita-api-klyuchej--kak-izbezhat-utechek</guid>
      <description><![CDATA[<p>Защита API-ключей. Показываем, как избежать утечек в API. Рассматриваем пошаговую инструкцию и инструменты ✔ Tproger</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/zashhita-api-klyuchej--kak-izbezhat-utechek">Защита API-ключей: как избежать утечек</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Лучшая практика]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Яндекс]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Vue]]></category>
      <category><![CDATA[CI/CD]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 27 May 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>API-ключи стали цифровыми пропусками в современную веб-инфраструктуру. Они открывают доступ к данным, сервисам и функционалу, но их утечка превращает этот удобный механизм в угрозу безопасности.</p><p>Техническая уязвимость идентификаторов — не единственная проблема. Защита API-ключей требует комплексного подхода, сочетающего технические решения и организационные меры. Практика показывает, что большинство утечек происходит не из-за направленных атак, а по причине пренебрежения базовыми принципами безопасности.</p><p>Поэтому важно не просто правильно хранить ключи, но и контролировать их использование, своевременно обновлять и ограничивать область действия. Понимание этих рисков — первый шаг к созданию надежной защиты API для ваших интерфейсов и данных.</p><p>В этой статье разберем основные причины утечек, а также практические методы защиты API-ключей, которые помогут избежать распространенных ошибок и минимизировать риски.</p><h2>Основные причины утечек</h2><p>API-ключи обеспечивают доступ к критически важным системам — от платежных шлюзов до облачных хранилищ данных. Их компрометация может привести к катастрофическим последствиям — утечке конфиденциальных данных, финансовым потерям и даже к полному захвату контроля над системой.</p><p>Разберем основные причины утечек.</p><h3>Хардкодинг ключей в исходном коде</h3><p>Пожалуй, самая распространенная и опасная практика — прямое внедрение API-ключей в исходный код приложения. Разработчики часто делают это для удобства тестирования, забывая удалить секретные данные перед релизом.</p><p>Особенно критично, когда ключи остаются:</p><ul><li>в конфигурационных файлах (config.php, .env);</li><li>в закомментированных блоках кода;</li><li>в тестовых сборках, которые по ошибке попадают в продакшен;</li><li>в шаблонах и примерах кода.</li></ul><p>Яркий пример — <a href="https://xakep.ru/2023/09/07/microsoft-post-mortem/">инцидент с Microsoft в 2023</a> году, когда утечка ключа MSA (Microsoft Account) через устаревший код позволила хакерам получить доступ к почтовым ящикам правительственных организаций США, включая Министерство торговли. Как показало расследование Microsoft Security Response Center, проблема возникла из-за ключа подписи, который продолжал использоваться в legacy-системах и попал в руки злоумышленников.</p><p>Главная опасность хардкодинга в том, что даже после удаления ключа из актуальной версии кода он может сохраняться в истории версий или бинарных файлах. Современные сканеры секретов легко находят такие уязвимости, что делает подобную практику особенно рискованной.</p><h3>Случайные коммиты в публичные репозитории</h3><p>Системы контроля версий типа Git хранят полную историю изменений, что создает дополнительные риски. Даже если ключ удален из текущей версии кода, он может остаться в истории коммитов.</p><p>Типичные сценарии:</p><ul><li>временное добавление ключа для отладки с последующим «удалением»;</li><li>позднее добавление .env-файла в .gitignore;</li><li>слияние веток с чувствительными данными;</li><li>автоматические коммиты IDE и инструментов разработки.</li></ul><p>В публичные репозитории GitHub ежедневно попадают сотни активных ключей — некоторые из них даже предоставляют доступ к платежным системам и базам данных.</p><h3>Ошибки в настройке CI/CD</h3><p>Автоматизированные системы сборки и деплоя могут невольно способствовать утечкам:</p><ul><li>передача ключей через аргументы командной строки;</li><li>попадание секретов в логи сборки;</li><li>неправильная настройка переменных окружения;</li><li>хранение ключей в незащищенных артефактах;</li><li>избыточные права доступа для CI-сервисов</li></ul><p>Особенно опасны ситуации, когда CI-пайплайн настроен на публикацию артефактов сборки, включающих конфигурационные файлы с ключами.</p><h3>Логирование чувствительных данных</h3><p>Разработчики часто добавляют отладочный вывод, который затем забывают удалить:</p><ul><li>console.log (“API Key: “, secretKey);</li><li>погирование полных HTTP-запросов с заголовками авторизации;</li><li>дампы ошибок с конфиденциальными данными;</li><li>журналирование параметров запросов.</li></ul><p>Такие записи могут попасть в системные логи, инструменты мониторинга (Kibana, Grafana), браузерную консоль (для фронтенд-приложений) и облачные сервисы хранения логов.</p><p>Проблема усугубляется тем, что многие фреймворки по умолчанию включают подробное логирование, а разработчики не всегда задумываются о последствиях. В корпоративных системах это может привести к накоплению секретов в централизованных системах мониторинга, доступ к которым имеют десятки сотрудников.</p><h2>Неправильное управление доступами</h2><p>Часто проблема кроется не в технических решениях, а в процессах управления:</p><ul><li>отсутствие ротации ключей — некоторые из них используются годами;</li><li>использование одних ключей для разных сред (dev/stage/prod);</li><li>избыточные права доступа — принцип минимальных привилегий не соблюдается;</li><li>хранение ключей в общих хранилищах и чатах;</li><li>отсутствие аудита использования ключей.</li></ul><p>Часто утечки происходят из-за совокупности нескольких перечисленных факторов. Например, типичный сценарий: ключ сначала попадает в код, затем в репозиторий, обнаруживается в логах CI-системы, а потом оказывается в общем доступе из-за неправильных настроек прав.</p><p>Особую опасность представляет практика использования долгоживущих ключей с широкими правами доступа. В отличие от временных токенов, такие ключи редко проверяются и могут годами оставаться незамеченными в случае утечки. Поэтому современные подходы к безопасности рекомендуют использовать краткосрочные реквизиты для входа с минимально необходимыми правами.</p><h2>Безопасное хранение и использование API-ключей</h2><p>API-ключи — это критически важные элементы инфраструктуры, и их утечка недопустима. Чтобы минимизировать риски, важно соблюдать несколько принципов.</p><p>Переменные окружения — один из базовых, но эффективных способов изоляции ключей от кода. Хранение их прямо в скриптах или конфигурационных файлах, особенно в публичных репозиториях, — распространенная ошибка.</p><p>Сканер секретов GitHub ежедневно обнаруживает сотни случайно залитых ключей, несмотря на предупреждения. Переменные окружения позволяют отделить конфиденциальные данные от кода, но важно убедиться, что файлы .env не попадают в билды или логи.</p><p>Для более сложных сценариев стоит рассмотреть специализированные хранилища секретов, такие как HashiCorp Vault, AWS Secrets Manager или Doppler. Они не только обеспечивают безопасное хранение, но и добавляют функции ротации ключей, аудита доступа и интеграции с системами мониторинга.</p><ul><li><b>Vault</b> динамически генерирует временные ключи для отдельных сервисов, сводя к нулю риск их повторного использования. Однако такие решения требуют настройки и контроля — при некомпетентном подходе компании сталкиваются с ошибками конфигурации при внедрении.</li><li><b>AWS Secrets Manager</b> — инструмент, который позволяет централизованно хранить конфиденциальную информацию, извлекать ее, управлять доступом, ротировать и мониторить.</li><li><b>Doppler</b> — кроссплатформенное решение с удобным интерфейсом и историей изменений. Особенно популярно среди стартапов.</li></ul><p>Главное преимущество таких систем — централизованное управление. При увольнении сотрудника или компрометации ключа его можно отозвать мгновенно для всех сервисов.</p><p>Шифрование обязательно как при передаче, так и при хранении. Даже если злоумышленник получит доступ к базе данных или логам, зашифрованные ключи останутся бесполезными без расшифровки. Современные стандарты, такие как AES-256 или алгоритмы на основе PQC (постквантовой криптографии), уже встроены в большинство облачных провайдеров. Но важно не забывать про управление ключами шифрования (KMS): их утечка сведет на нет всю защиту.</p><p>Ограничение доступа — еще один уровень безопасности. Даже корректно хранимый ключ должен работать только с определенных IP-адресов, в заданные промежутки времени и для конкретных методов API. Например, ключ для чтения данных не должен разрешать запись. Cloudflare <a href="https://blog.cloudflare.com/">рекомендует</a> комбинировать геофильтрацию, ограничение частоты запросов и сигнатурный анализ запросов для блокировки аномальных действий.</p><p>Наконец, мониторинг помогает обнаружить утечку до того, как ею воспользуются. Инструменты вроде AWS GuardDuty или открытый вариант Falco отслеживают подозрительные операции: неожиданные запросы из новых регионов, аномальную частоту вызовов API или попытки доступа к заблокированным эндпоинтам.</p><p>Важно: ни один метод не дает 100% защиты API. Нужно комбинировать подходы и регулярно аудировать систему. Безопасность API-ключей — это не разовая настройка, а процесс, требующий регулярного пересмотра политики адаптации к новым угрозам.</p><h3>Лучшая практика работы с ключами</h3><p>Хранение API-ключей требует особого внимания, так как их компрометация может привести к серьезным последствиям. Около половины всех утечек ключей происходят из-за их хардкодирования в исходном коде. Это базовая ошибка, которую легко избежать, используя переменные окружения или специализированные хранилища секретов.</p><p>Вот самые эффективные практики:</p><ul><li>Первое правило — никогда не оставлять ключи в коде. Даже если репозиторий приватный, всегда существует риск случайной публикации или утечки через резервные копии. Инструменты вроде pre-commit хуков помогают предотвратить подобные инциденты, автоматически проверяя изменения перед отправкой. Например, скрипт может сканировать коммиты на наличие строк, похожих на ключи, и блокировать их сохранение.</li><li>Регулярная ротация снижает потенциальный ущерб от возможной компрометации. Ключи, которые не обновлялись годами, представляют особую опасность. Современные системы, такие как HashiCorp Vault или AWS Secrets Manager, позволяют автоматизировать этот процесс.</li><li>Принцип минимальных привилегий должен применяться ко всем ключам. Если токен нужен только для чтения данных, он не должен иметь прав на запись или удаление. Ограничение области действия каждого токена — простой, но эффективный способ снизить риски.</li><li>Мониторинг использования помогает выявлять аномалии в реальном времени. Неожиданные всплески активности, запросы из новых регионов или попытки доступа к неиспользуемым методам API — все это сигналы потенциальной компрометации. Инструменты типа AWS CloudTrail или Elastic SIEM позволяют отслеживать подобные события и оперативно реагировать на угрозы.</li><li>Обучение команды не менее важно, чем технические меры. Регулярные тренинги и чек-листы помогают поддерживать уровень осведомленности.</li></ul><p>Централизованное управление упрощает контроль за ключами. Когда все токены хранятся в одном защищенном месте, проще отслеживать их использование, вовремя обновлять и отзывать при необходимости. Это также облегчает аудит, который часто требуется для соответствия стандартам вроде PCI DSS или ГОСТ Р 56939-2024.</p><p>Процесс отзыва должен быть максимально оперативным. В случае компрометации ключа важно не только сгенерировать новый, но и убедиться, что старый уже недействителен. Некоторые сервисы, например Google Cloud, позволяют автоматически блокировать ключи при обнаружении подозрительной активности.</p><h3>Автоматическое выявление утечек</h3><p>Обнаружение утекших API-ключей должно быть неотъемлемой частью стратегии безопасности. Современные инструменты позволяют выявлять компрометацию секретов на ранних стадиях, минимизируя потенциальный ущерб.</p><p>Эффективный мониторинг начинается с проверки исходного кода. Такие инструменты, как <a href="https://www.gitguardian.com/">GitGuardian</a> и <a href="https://trufflesecurity.com/">TruffleHog</a>, сканируют git-репозитории, включая историю коммитов, на наличие случайно оставленных ключей. Они используют комбинацию шаблонов и энтропийного анализа, что помогает находить даже замаскированные секреты. Интеграция этих проверок в CI/CD-пайплайны позволяет перехватывать потенциальные утечки до их попадания в основную ветку.</p><p>Для обнаружения ключей за пределами репозиториев существуют специализированные сервисы, которые мониторят открытые площадки вроде Pastebin и технических форумов. Некоторые решения способны анализировать контекст, отличая реальные ключи от случайных последовательностей символов.</p><p>При выявлении компрометации критически важна оперативная реакция. Первый шаг — немедленный отзыв скомпрометированного ключа. Современные системы управления секретами позволяют делать это автоматически, одновременно инициируя процесс генерации замены. Задержки в этом процессе создают опасное окно уязвимости.</p><p>Проактивный мониторинг должен сопровождаться четким планом реагирования. Документированные процедуры позволяют сократить время реакции и минимизировать последствия инцидента. Важно регулярно тестировать эти процедуры на практике.</p><p>Автоматизированные системы обнаружения утечек работают наиболее эффективно в сочетании с обучением разработчиков. Технические средства бесполезны, если команда продолжает пренебрегать базовыми правилами безопасности. Регулярные тренировки помогают поддерживать высокий уровень готовности к реальным угрозам.</p><p>Важно понимать, что автоматическое обнаружение — это последний рубеж защиты. Оно не заменяет, а дополняет другие меры безопасности, такие как грамотное хранение ключей и контроль доступа. Комплексный подход значительно снижает риски, связанные с компрометацией API-ключей.</p><h2>Как реализовать безопасный доступ на фронтенде</h2><p>Основная проблема фронтенд-разработки в контексте работы с API — невозможность полностью защитить клиентский код. В отличие от серверной части, JavaScript остается открытым для анализа, а сетевые запросы легко перехватываются. Однако существуют проверенные подходы, позволяющие минимизировать риски утечки ключей.</p><p>Первое и главное правило — никогда не хранить приватные ключи в клиентском коде. Даже минифицированный JavaScript легко декомпилируется, а строковые константы извлекаются за несколько минут с помощью стандартных инструментов разработчика.</p><p>Вместо этого рекомендуется использовать архитектурный паттерн Backend-for-Frontend (BFF), когда фронтенд общается с промежуточным сервером, а тот уже взаимодействует с основными API. Так ключи остаются на защищенной стороне, а клиент получает только временные токены с ограниченным сроком действия.</p><p>Для аутентификации пользователей оптимально подходит OAuth 2.0 с расширением PKCE (Proof Key for Code Exchange). Этот механизм обеспечивает безопасный обмен токенами даже в публичных клиентах. В отличие от обычного потока авторизации, PKCE добавляет дополнительный уровень защиты через одноразовые ключи верификации, что предотвращает перехват кодов злоумышленниками.</p><p>В случаях, когда фронтенду необходим доступ к публичным API без аутентификации пользователя, стоит использовать ограниченные токены. Например, для картографического сервиса можно выпускать ключи, разрешающие только чтение данных с жестким лимитом запросов. Такой подход применяют многие крупные платформы, включая Яндекс.Карты. Даже если токен будет скомпрометирован, его полезность для злоумышленников окажется минимальной.</p><p>Дополнительную безопасность обеспечивает динамическое получение ключей. В этой схеме фронтенд сначала запрашивает у сервера одноразовый код, затем использует его для подписи запроса. После проверки подписи сервер выдает временный ключ, действительный только для текущей сессии. Этот метод значительно усложняет массовый перехват и повторное использование украденных данных.</p><p>Фронтенд должен получать ровно столько данных, сколько необходимо для отображения интерфейса, а все критические операции должны выполняться на сервере. Комбинация прокси-серверов, временных токенов и строгого контроля доступа позволяет создать надежную систему защиты даже для чувствительных API.</p><p>Последний рубеж безопасности — верификация среды выполнения. Современные библиотеки анализируют параметры браузера, выявляя признаки эмуляции или автоматизации. Это позволяет блокировать запросы от ботов и скриптов, пытающихся массово собирать данные через API. Такой подход особенно важен для финансовых сервисов и платформ с ценной информацией.</p><p>Главный вывод: фронтенд действительно представляет угрозу для безопасности API-ключей, но грамотная архитектура и продуманные механизмы авторизации позволяют снизить риски до приемлемого уровня. Ключевой принцип защиты API — минимализм в правах доступа и максимальное делегирование ответственности серверной части.</p><p>Хочешь писать код, который не стыдно показывать? Всё для фронтендеров и бэкендеров в <a href="https://t.me/+c6lPaQBXLvE4YmMy">одном месте</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Чек-лист: как перейти на новый хостинг и не потерять данные</title>
      <link>https://tproger.ru/articles/chek-list--kak-perejti-na-novyj-hosting-i-ne-poteryat-dannye-255261</link>
      <comments>https://tproger.ru/articles/chek-list--kak-perejti-na-novyj-hosting-i-ne-poteryat-dannye-255261?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Анна Ельцова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/chek-list--kak-perejti-na-novyj-hosting-i-ne-poteryat-dannye-255261</guid>
      <description><![CDATA[<p>Иван Некулицы, основатель PQ.Hosting, рассказывает, как организовать переезд на другой хостинг без рисков и простоев.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/chek-list--kak-perejti-na-novyj-hosting-i-ne-poteryat-dannye-255261">Чек-лист: как перейти на новый хостинг и не потерять данные</a>»</p>]]></description>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[SEO]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Node.js]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[VPS]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 11 Apr 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>К переезду сайта на новый хостинг нужно хорошо готовиться. Если провести миграцию неправильно, можно потерять часть контента и даже ухудшить позиции сайта в поисковых системах. Подробный чек-лист переноса сайта на новый ресурс дал Иван Некулицы — основатель и директор международного хостинг-провайдера PQ.Hosting, предлагающего виртуальные  (VPS/VDS), выделенные серверы с 10 Gbps в 43 странах.</p><p>Причины переноса сайта на другой хостинг могут быть разными:</p><ul><li><b>Юзабилити.</b> Страницы сайта начнут грузиться быстрее, плюс он будет более удобным и поднимется в поиске.</li><li><b>Затраты.</b> Хостеры с выгодными тарифами или оптимальными предложениями позволят снизить эксплуатационные расходы.</li><li><b>Стабильность.</b> Смена провайдера с частыми сбоями на более устойчивого партнера обеспечит бесперебойную работу ресурса.</li><li><b>Поддержка.</b> Более квалифицированная служба поддержки поможет быстрее справляться с возникающими проблемами;</li><li><b>Масштабирование.</b> Хостер с возможностью масштабирования ресурсов поддержит растущий трафик и потребности вашего сайта;</li><li><b>Безопасность.</b> Повышенные меры защиты предотвратят угрозы кибератак и утечек данных;</li><li><b>Расположение. </b>Серверы, расположенные рядом с основной аудиторией, обеспечат ускоренную загрузку и лучшее восприятие пользователями.</li></ul><p>Какой бы ни была причина перехода, важно организовать его без потерь данных и времени.</p><h2>Шаг первый</h2><p>Начать стоит с <b>планирования и подготовки к миграции</b>. Выберите оптимальное время для переезда. Запланируйте перенос на наименее загруженный период работы сайта (например, поздней ночью или в выходные). Одновременно с этим <b>приостановите</b> публикацию нового контента и изменения на странице на время миграции, и предупредите команду, чтобы редакторы, авторы или клиенты не вносили правки: любые изменения во время переноса могут не попасть на новый сервер, что приведёт к потере данных. Если ожидается заметный простой или отключение функций (например, оформление заказов), <b>предупредите пользователей о предстоящих технических работах.</b> Разместите баннер или уведомление на сайте с указанием времени обслуживания и извинениями за неудобства.</p><p>При переносе необходимо <b>подготовить новую хостинг-платформу</b> заранее: зарегистрировать и настроить аккаунт у нового провайдера — желательно за 1-2 недели до переключения. Важно, чтобы тариф и ресурсы нового хостинга не уступали старому, а лучше превосходили его по параметрам (производительность, объем хранилища, оперативная память и пр.). Обязательно стоит <b>проверить совместимость нового сервера с имеющимся стеком технологий</b>: версии ОС, PHP/Node.js, СУБД, требуемые модули и библиотеки должны соответствовать или превышать текущие, чтобы избежать ошибок совместимости.</p><p>Далее нужно провести аудит всех компонентов вашего проекта. Составьте подробный список того, что нужно перенести: файлы сайта, базы данных, аккаунты пользователей, контент (изображения, видео, документы), настроенные задачи (cron jobs), DNS-записи (A, CNAME, MX и пр.), сертификаты SSL, иные интеграции.</p><p>Заранее стоит <b>продумать, как минимизировать downtime.</b> Помимо выбора ночного времени и контент-фриза существуют технические приемы: например, сокращение TTL DNS (см. раздел про DNS ниже) позволяет быстрее переключить домен на новый IP, а предварительное тестирование сайта на новом сервере до обновления DNS помогает выявлять проблемы — причем пользователи ничего не заметят.</p><h2>Шаг второй</h2><p><b>Резервное копирование перед переносом</b> — обязательная процедура. Стоит сделать полный бэкап всего проекта — перед любыми изменениями создать актуальную резервную копию файлов и баз данных. Даже если старый сервер не будет сразу отключен, наличие независимого бэкапа — это подстраховка на случай непредвиденных сбоев. После создания, проверьте работоспособность бэкапа. По возможности, убедитесь, что резервная копия валидна и её можно развернуть.</p><h2>Шаг третий</h2><p>Переходим непосредственно к переносу файлов и баз данных. Для этого нужно <b>перевести сервисы в режим миграции</b> и перед началом копирования данных <b>переключить сайт в оффлайн-режим</b> (режим обслуживания).</p><p>Далее — скопировать файлы сайта на новый сервер. Самый простой способ — загрузить бэкап на новый хост и развернуть его там, после чего перенести на него базу данных, связанные сервисы и настройки. Помимо основного кода и БД, переносится и все окружение сайта. До переключения DNS запускаем тестирование на новом сервере, чтобы убедиться в работоспособности сайта в новом окружении, прежде чем направлять на него пользователей.</p><p>Последний шаг на этом этапе — <b>синхронизация последних изменений</b> (при необходимости). Если принято решение не останавливать полностью работу старого сайта на время переноса (например, при миграции очень большого проекта), то придется повторно синхронизировать данные, которые могли измениться за время копирования.</p><h2>Шаг четвертый</h2><p>Чтобы сократить TTL DNS перед переключением, за день-два до планируемой миграции <b>стоит уменьшить TTL</b> (Time to Live) для DNS-записей вашего домена, а также обновить DNS-записи на новые. Когда новый сервер полностью готов и протестирован, нужно изменить DNS-записи домена, указывающие на старый хост, чтобы они указывали на новый. Если домен обслуживается у регистратора или внешнего DNS-сервиса — поменяйте A-запись (IPv4) и AAAA-запись (IPv6), или NS-записи (если менялся DNS-провайдера целиком). В случае смены хостинга часто требуется обновить NS (nameservers) на стороне регистратора на NS нового провайдера.</p><p>После обновления DNS возможно кратковременное состояние, когда часть пользователей попадает на новый сервер, а часть — еще на старый (пока старый кэш не истечет). Поэтому нужно следить за переходным периодом и не допустить, чтобы старый сервер в этот период тоже оставался доступным.</p><p>После проверки переноса или перенастройки всех связанных DNS-записей стоит <b>проверить и обновления DNS</b>. Для этого можно использовать утилиты вроде nslookup или онлайн-сервисы (Google DNS, Cloudflare DNS, WhatsMyDNS), чтобы убедиться, что домен теперь указывает на новый сервер по всему миру.</p><h2>Шаг пятый</h2><p><b>Перенос состоялся. Что дальше? Пост-миграционное тестирование и мониторинг</b></p><p>В рамках этих процессов необходимо тщательно <b>проверить сайт на новом хостинге</b>. Когда домен начал вести на новый сервер, стоит провести всестороннее тестирование фронтенда и бэкенда в боевых условиях: при помощи инструментов веб-аналитики или специальных сервисов для измерения скорости сравнить время загрузки страниц до и после переезда. Это нужно для оценки производительности и нагрузки.</p><p>Не стоит забывать <b>следить за журналами и метриками</b>: просматривать логи веб-сервера и приложений на новом сервере, искать ошибки (PHP fatal errors, 500 Internal Server Error, проблемы подключения к БД и т.д.) и устранять их. После перехода на новый хостинг нужно проверять и SEO-показатели и индексацию, чтобы убедиться, что сайт по-прежнему правильно индексируется поисковиками.</p><p>Обязательно <b>обеспечьте непрерывность сервисов электронной почты </b>— стоит протестировать доставку писем на корпоративные адреса после смены MX-записей (если они менялись). В завершении провести финальное резервное копирование и отключение старого сервера. Когда работа сайта на новом хосте не вызывает нареканий —  рекомендую сделать еще одну резервную копию — уже на новом хостинге, чтобы зафиксировать рабочее состояние в точке после миграции. Впервые 24-48 часов после миграции важно быстро реагировать на возможные сбои. Стоит сообщить команде, что переезд завершён, и попросить коллег сообщать обо всех замеченных проблемах.</p><h2>Лайфхаки для безопасной и простой миграции</h2><p>Вот несколько универсальных советов для тех, кто планирует переезжать на новый хостинг:</p><ul><li>Делайте бэкапы на каждом этапе.</li><li>Планируйте и документируйте. Подготовьте чек-лист миграции и строго ему следуйте.</li><li>Тщательно проверяйте окружение до запуска. Никогда не переключайте пользователей на новый хостинг, пока сами не убедитесь, что там всё работает на 100%.</li><li>Минимизируйте окно простоя.</li><li>Общайтесь с аудиторией. Предупредите постоянных пользователей о небольшом перерыве в работе.</li><li>Учитывайте SEO-факторы. Небольшие просадки SEO в возможны, но правильная миграция их минимизирует.</li><li>Следите за качеством данных. После переезда организуйте своеобразный аудит данных: сопоставьте количество записей в базах, количество файлов, размер медиа-библиотеки до и после.</li></ul><p>Не отключайте старое раньше времени. Мы уже упоминали, но повторим: пусть старый хостинг побудет вашей сетью безопасности на случай форс-мажора. Лучше заплатить за лишние несколько дней или неделю, чем потом пожалеть о поспешном удалении данных.</p><p>Чтобы не потерять данные, нужно использовать лучшие подходы. Как раз рассказываем о таких в нашем <a href="https://t.me/+iKEwDxvulHFkZDhi">тг-канале</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>В Next.js нашли критическую уязвимость для обхода авторизации через HTTP-заголовок</title>
      <link>https://tproger.ru/news/--v-next-js-nawli-kriticheskuyu-uyazvimost-dlya-obhoda-avtorizacii-cherez-http-zagolovok</link>
      <comments>https://tproger.ru/news/--v-next-js-nawli-kriticheskuyu-uyazvimost-dlya-obhoda-avtorizacii-cherez-http-zagolovok?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/--v-next-js-nawli-kriticheskuyu-uyazvimost-dlya-obhoda-avtorizacii-cherez-http-zagolovok</guid>
      <description><![CDATA[<p>В Next.js нашли уязвимость CVE-2025-29927, которая позволяет обходить авторизацию через заголовок и получать доступ к закрытым маршрутам</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/--v-next-js-nawli-kriticheskuyu-uyazvimost-dlya-obhoda-avtorizacii-cherez-http-zagolovok">В Next.js нашли критическую уязвимость для обхода авторизации через HTTP-заголовок</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[CDN]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 24 Mar 2025 08:16:13 GMT</pubDate>
      <content:encoded><![CDATA[<p><b>Исследователи <a href="https://zeropath.com/blog/nextjs-middleware-cve-2025-29927-auth-bypass">выявили</a> критическую уязвимость в Next.js (CVE-2025-29927)</b>, которая позволяет обойти проверки авторизации, реализованные через middleware. <b>Проблема затрагивает версии с 11.1.4 по 15.2.2.</b></p><p>Уязвимость связана с тем, как фреймворк обрабатывает заголовок x-middleware-subrequest. Он задумывался как <b>внутренний механизм защиты от бесконечной рекурсии</b>, но злоумышленник может <b>добавить этот заголовок в обычный запрос и тем самым отключить middleware полностью</b>.</p><p>Это позволяет получить доступ к защищенным маршрутам — <b>например, /dashboard/admin</b> — даже без авторизации.</p><h2>Как это работает</h2><p>При наличии заголовка x-middleware-subrequest с нужным значением <b>Next.js пропускает выполнение middleware</b> и передает запрос напрямую. Пример:</p><p><b>Проверка выполняется до любых других ограничений</b>, включая глубину рекурсии и логику аутентификации. В результате <b>авторизационные механизмы полностью игнорируются</b>.</p><h2>Кто под ударом</h2><p>Подвержены все приложения, использующие Next.js:</p><ul><li><b>версий 11.1.4–13.5.6</b></li><li><b>версий 14.x до 14.2.25</b></li><li><b>версий 15.x до 15.2.3</b></li></ul><p><b>Развертывания на Vercel уже защищены</b>, но <b>self-hosted инсталляции уязвимы</b>, если не обновлены или не настроены вручную.</p><h2>Риски и последствия</h2><p>Эксплуатация уязвимости позволяет:</p><ul><li><b>обойти авторизацию</b> и получить доступ к закрытым разделам;</li><li><b>обойти заголовки безопасности</b>, например CSP;</li><li><b>влиять на кэширование контента</b>, отравляя кэш на стороне CDN.</li></ul><p><b>Для атаки не нужны специальные инструменты</b> — только корректный заголовок в HTTP-запросе.</p><h2>Как защититься</h2><p>Решения два:</p><ol><li><b>Обновиться</b> до безопасных версий — 14.2.25 или 15.2.3.</li><li>Если обновление невозможно, <b>заблокировать или удалить заголовок</b> x-middleware-subrequest до того, как он попадет в Next.js.</li></ol><p>Это можно реализовать на уровне:</p><ul><li><b>WAF или балансировщика (например, Cloudflare)</b>;</li><li><b>web-сервера (Nginx, Apache)</b>;</li><li><b>Express-сервера</b>, если используется кастомная сборка.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>WAF и Firewall: просто о сложном для начинающих разработчиков и аналитиков</title>
      <link>https://tproger.ru/articles/waf-i-firewall--prosto-o-slozhnom-dlya-nachinayushhih-razrabotchikov-i-analitikov</link>
      <comments>https://tproger.ru/articles/waf-i-firewall--prosto-o-slozhnom-dlya-nachinayushhih-razrabotchikov-i-analitikov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Михаил Пискунов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/waf-i-firewall--prosto-o-slozhnom-dlya-nachinayushhih-razrabotchikov-i-analitikov</guid>
      <description><![CDATA[<p>Разбираем, чем отличаются WAF и Firewall, как они работают и когда их применять. Простые объяснения для начинающих разработчиков и аналитиков.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/waf-i-firewall--prosto-o-slozhnom-dlya-nachinayushhih-razrabotchikov-i-analitikov">WAF и Firewall: просто о сложном для начинающих разработчиков и аналитиков</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[PHP]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Хакеры]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 08 Feb 2025 09:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>В мире кибербезопасности часто встречаются термины WAF и Firewall, но не всегда понятно, чем они отличаются и как работают. Если вы начинающий разработчик или аналитик и хотите разобраться, как защитить веб-приложение от атак, эта статья может вам помочь. Сегодня простыми словами объясню принципы работы WAF и классического брандмауэра, разберу их ключевые различия и подскажу, когда и какой инструмент применять.</p><h2>Что такое Firewall и зачем он нужен?</h2><p>Представьте, что ваш дом окружён забором, который защищает вас от нежелательных гостей. Этот забор проверяет, кто входит и выходит, и позволяет проходить только тем, у кого разрешение. В мире IT таким забором выступает Firewall <i>(межсетевой экран)</i>.</p><p><b>Firewall</b><i> (читается как фаервол)</i> — система безопасности, которая фильтрует трафик между устройствами в сети и Интернетом. Она контролирует, какие данные могут входить и выходить, и блокирует вредоносные или подозрительные соединения.</p><h3>Когда нужен Firewall?</h3><ol><li><b>Защита офисной сети.</b> Например, в компании есть корпоративная сеть, и руководство не хочет, чтобы сотрудники открывали небезопасные сайты или скачивали вирусы. Firewall можно настроить так, чтобы блокировать доступ к определённым ресурсам.</li><li><b>Фильтрация внешних подключений.</b> Допустим, у вас есть сервер с важными данными, и вы хотите, чтобы он был доступен только с определённых IP-адресов. Firewall может заблокировать всех, кроме разрешённых пользователей.</li><li><b>Защита от вредоносных атак.</b> Хакеры могут пытаться сканировать сеть на наличие уязвимостей или отправлять вредоносный трафик. Firewall помогает остановить такие атаки.</li></ol><h2>Что такое WAF и почему его недостаточно заменить Firewall?</h2><p>Если <b>Firewall</b> – <b>забор</b> вокруг дома, то <b>WAF </b>(Web Application Firewall) – <b>умный домофон</b>, который проверяет каждого гостя по видео и может отказать в доступе, если что-то не так.</p><p>WAF защищает конкретно веб-приложения, анализируя HTTP/HTTPS-запросы и предотвращая атаки, направленные на уязвимости сайта. Обычный Firewall <b>не разбирается</b> в веб-запросах на таком глубоком уровне.</p><figure><img src="https://media.tproger.ru/user-uploads/111901/2025-02-06/b7d65f99-4cd6-4376-88cb-d3ad769f5828.png" alt="" /><figcaption>WAF или Firewall размещается перед балансировщиками нагрузки и API Gateway, принимая входящие запросы от пользователей первым</figcaption></figure><h3>Когда нужен WAF?</h3><h4>Защита от SQL-инъекций</h4><p><b>SQL-инъекция</b> – атака, при которой злоумышленник вводит вредоносный код в текстовые поля веб-приложения, чтобы изменить работу базы данных.</p><p><i>Пример на PHP:</i></p><p>WAF может блокировать такие запросы, обнаруживая подозрительный ввод.</p><h4>Защита от XSS (кросс-сайтового скриптинга)</h4><p><b>XSS</b> – атака, при которой хакер внедряет вредоносный JavaScript-код на сайт, который затем выполняется у пользователей.</p><p>Пример уязвимого кода на JavaScript:</p><p>Если злоумышленник введёт &lt;script&gt;alert('Взлом!')&lt;/script&gt;, браузер выполнит этот код, открыв всплывающее окно. WAF может предотвратить подобные инъекции.</p><h2>Можно ли ставить WAF и Firewall на один сервер?</h2><p>Обычно WAF и Firewall работают на разных уровнях и ставятся на разные устройства:</p><ol><li>Firewall чаще устанавливается на <b>отдельный сервер</b> или <b>маршрутизатор</b>, через который проходит весь трафик.</li><li>WAF может быть <b>облачным</b> <i>(например, Cloudflare)</i> или <b>локальным</b> <i>(установленным на сервере веб-приложения)</i>.</li></ol><p>Но бывают и комплексные решения, где оба механизма объединены.</p><h2>Популярные Firewall и WAF</h2><p>Популярные Firewall:</p><ol><li><b>pfSense</b> — бесплатный и мощный firewall с гибкой настройкой</li><li><b>Cisco ASA</b> — аппаратный межсетевой экран от Cisco, часто используется в крупных компаниях</li><li><b>Fortinet FortiGate</b> — мощное решение для корпоративных сетей</li></ol><figure><img src="https://media.tproger.ru/user-uploads/111901/2025-02-06/7a6f463d-0cca-48b0-91bb-bbfe4dcf11de.png" alt="" /><figcaption>Популярные Firewalls: pfSense – сверху, Cisco ASA – слева, Fortinet FortiGate – справа</figcaption></figure><p>Популярные WAF:</p><ol><li><b>ModSecurity </b>— один из самых известных WAF, который можно интегрировать с веб-серверами</li><li><b>Cloudflare WAF</b> — облачное решение, защищающее сайты от атак</li><li><b>AWS WAF</b> — WAF от Amazon, используется для защиты приложений, развернутых в AWS</li></ol><figure><img src="https://media.tproger.ru/user-uploads/111901/2025-02-06/5524db29-9150-41c6-ba4f-dfa01c75a506.png" alt="" /><figcaption>Популярные WAF: ModSecurity – сверху, Cloudflare WAF – слева, AWS WAF – справа</figcaption></figure><p>Обычно настройкой занимаются DevOps-инженеры, системные администраторы или сетевые инженеры. Они устанавливают firewall на сетевых узлах.</p><h2>Cloudflare — это WAF или Firewall?</h2><p>Cloudflare предоставляет <b>облачный WAF</b>, который анализирует веб-трафик и защищает от атак. Однако у Cloudflare также есть сетевые функции, похожие на firewall, например, защита от DDoS. То есть Cloudflare <b>не заменяет полностью firewall</b>, а дополняет его.</p><p>Cloudflare работает как <b>промежуточный слой</b> между пользователями и серверами, фильтруя весь входящий трафик. Он может блокировать вредоносные боты, снижать нагрузку на серверы и предотвращать атаки — SQL-инъекции и XSS. Кроме того, Cloudflare автоматически кэширует статический контент, ускоряя загрузку страниц и снижая нагрузку на сервер.</p><p>Одна из ключевых функций Cloudflare — защита от <b>DDoS</b>-атак, когда злоумышленники пытаются перегрузить сервер огромным количеством запросов. В таких случаях Cloudflare распределяет нагрузку между своими серверами, минимизируя воздействие атаки. В то же время он может работать вместе с традиционными firewalls, усиливая их защитные функции за счёт интеллектуального анализа трафика и машинного обучения.</p><h2>Что нужно выбрать?</h2><p>Если у вас обычный сервер, то:</p><ol><li><b>Firewall</b> — защита на уровне сети, нужен для фильтрации трафика;</li><li><b>WAF</b> — защита веб-приложения от специфичных атак (SQL-инъекции, XSS);</li><li><b>Cloudflare</b> — может дополнять их, предоставляя облачную защиту.</li></ol><p>Если у вас веб-приложение, обязательно используйте WAF + безопасные подходы к программированию, чтобы защитить данные пользователей.</p><p>И помните: безопасность — это не одна технология, а комплекс мер, которые помогают защитить ваш проект!</p><p>Если вам интересно разобраться в этих темах подробнее и в доступной форме, загляните в мой блог СистемныйАрхитектор.рф — там много полезных материалов.</p>]]></content:encoded>
    </item>
    <item>
      <title>15-летний хакер обнаружил уязвимость в безопасности сотен крупнейших компаний</title>
      <link>https://tproger.ru/news/--15-letnij-haker-obnaruzhil-uyazvimost-v-bezopasnosti-soten-krupnejwih-kompanij</link>
      <comments>https://tproger.ru/news/--15-letnij-haker-obnaruzhil-uyazvimost-v-bezopasnosti-soten-krupnejwih-kompanij?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/--15-letnij-haker-obnaruzhil-uyazvimost-v-bezopasnosti-soten-krupnejwih-kompanij</guid>
      <description><![CDATA[<p>15-летний хакер обнаружил уязвимость в системе Zendesk, затронувшую десятки миллионов пользователей крупнейших компаний планеты</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/--15-letnij-haker-obnaruzhil-uyazvimost-v-bezopasnosti-soten-krupnejwih-kompanij">15-летний хакер обнаружил уязвимость в безопасности сотен крупнейших компаний</a>»</p>]]></description>
      <category><![CDATA[Slack]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 14 Oct 2024 05:09:05 GMT</pubDate>
      <content:encoded><![CDATA[<p>В начале 2024 года 15-летний программист по имени Даниэль <a href="https://gist.github.com/hackermondev/68ec8ed145fcee49d2f5e2b9d2cf2e52">открыл</a> серьезную уязвимость в системе Zendesk — популярном сервисе поддержки клиентов, которым пользуются такие гиганты, как Cloudflare и прочие компании из списка Fortune 500.</p><p>Эта уязвимость позволяла злоумышленникам получать доступ к внутренним перепискам компаний, эксплуатируя уязвимость в обработке электронных писем.</p><h2>Суть проблемы</h2><p>Zendesk использует автоматическую систему создания тикетов на основе электронных писем.</p><p>Злоумышленники могли отправить поддельное письмо от имени пользователя внутри команды и, воспользовавшись функцией совместной работы, добавить свой адрес в тикет, получая доступ ко всей истории переписки.</p><p>Поскольку многие компании интегрировали Zendesk с системой единого входа (SSO), такая атака могла привести к захвату аккаунтов в таких сервисах, как Slack.</p><h2>Проблема с политикой Zendesk</h2><p>После обнаружения уязвимости, Даниэль обратился в программу вознаграждений за уязвимости Zendesk через платформу HackerOne, однако его сообщение было отклонено, так как использованная техника считалась «вне рамок».</p><p>Несмотря на это, после того как Даниэль стал уведомлять компании напрямую, Zendesk пересмотрела свою позицию и признала проблему.</p><h2>Последствия</h2><p>Даниэль заработал более $50 тыс за сообщения о проблеме различным компаниям, однако сам Zendesk не выплатил вознаграждение.</p><p>Через два месяца компания исправила уязвимость, добавив дополнительные меры безопасности, но оставив юного исследователя без награды.</p>]]></content:encoded>
    </item>
    <item>
      <title>«Сайт не работает, офис пустует, телефоны не отвечают»: Cloudflare стерла в порошок патентных троллей</title>
      <link>https://tproger.ru/news/-sajt-ne-rabotaet--ofis-pustuet--telefony-ne-otvechayut---cloudflare-sterla-v-porowok-patentnyh-trollej</link>
      <comments>https://tproger.ru/news/-sajt-ne-rabotaet--ofis-pustuet--telefony-ne-otvechayut---cloudflare-sterla-v-porowok-patentnyh-trollej?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/-sajt-ne-rabotaet--ofis-pustuet--telefony-ne-otvechayut---cloudflare-sterla-v-porowok-patentnyh-trollej</guid>
      <description><![CDATA[<p>Cloudflare победила патентных троллей Sable Networks, получив $225 тыс и обязав компанию сделать патенты общедоступными. Суд подтвердил, что патенты Sable устарели или были неправомерно выданы</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/-sajt-ne-rabotaet--ofis-pustuet--telefony-ne-otvechayut---cloudflare-sterla-v-porowok-patentnyh-trollej">«Сайт не работает, офис пустует, телефоны не отвечают»: Cloudflare стерла в порошок патентных троллей</a>»</p>]]></description>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 04 Oct 2024 12:57:25 GMT</pubDate>
      <content:encoded><![CDATA[<p>Компания Cloudflare одержала <a href="https://blog.cloudflare.com/patent-troll-sable-pays-up/">победу</a> над Sable Networks, которая пыталась взыскать с неё деньги за использование патентов.</p><p>В процессе судебного разбирательства выяснилось, что патенты Sable Networks либо устарели, либо вообще не должны были быть выданы.</p><p>Теперь компания не только обязана выплатить Cloudflare $225 тыс, но и предоставить бесплатную лицензию на все свои патенты, а также сделать их общедоступными.</p><h2>Кто такие патентные тролли?</h2><p>Патентными троллями называют компании, которые занимаются исключительно покупкой патентов с целью заработка на судебных исках, не занимаясь собственными разработками.</p><p>Sable Networks – яркий пример такой деятельности. Она предъявила Cloudflare обвинения в нарушении более чем 100 патентов, большинство из которых касались устаревших технологий маршрутизаторов.</p><p>В результате разбирательства Cloudflare доказала, что обвинения были необоснованными и что патенты не могли быть использованы в её продуктах.</p><h2>Как Cloudflare разоблачила Sable Networks</h2><p>Cloudflare удалось убедить суд в недействительности патентов, которые использовала Sable Networks для своих обвинений.</p><p>Например, ключевой патент 7012919 касался технологии «микропотока», которая, как выяснилось, была описана в более ранних документах других компаний.</p><p>Этот факт убедил судей в том, что патент Sable был выдан ошибочно. В результате Cloudflare не только избавилась от претензий, но и обернула ситуацию так, что Sable Networks теперь должна ей деньги.</p><h2>Последствия для Sable Networks</h2><p>После сокрушительного проигрыша в суде, сайт Sable Networks перестал функционировать, а офисные телефоны компании больше не отвечают.</p><p>Судебное поражение стало ударом по ее репутации. При этом компания также подавала иски против таких гигантов, как Cisco и Juniper Networks. Правда, эти IT-гиганты решили урегулировать дела вне суда.</p>]]></content:encoded>
    </item>
    <item>
      <title>Из-за сбоя в работе Cloudflare многие сайты по всему миру стали недоступны</title>
      <link>https://tproger.ru/news/--iz-za-sboya-v-rabote-cloudflare-mnogie-sajty-po-vsemu-miru-stali-nedostupny</link>
      <comments>https://tproger.ru/news/--iz-za-sboya-v-rabote-cloudflare-mnogie-sajty-po-vsemu-miru-stali-nedostupny?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/--iz-za-sboya-v-rabote-cloudflare-mnogie-sajty-po-vsemu-miru-stali-nedostupny</guid>
      <description><![CDATA[<p>Из-за сбоя в сервисе Cloudflare многие веб-сайты по всему миру стали недоступны. Проблемы с подключением носят региональный характер, при этом некоторые сайты остаются доступны через IPv6</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/--iz-za-sboya-v-rabote-cloudflare-mnogie-sajty-po-vsemu-miru-stali-nedostupny">Из-за сбоя в работе Cloudflare многие сайты по всему миру стали недоступны</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Node.js]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 18 Sep 2024 02:30:08 GMT</pubDate>
      <content:encoded><![CDATA[<p>Накануне произошел <a href="https://www.bleepingcomputer.com/news/technology/cloudflare-outage-cuts-off-access-to-websites-in-some-regions/">масштабный сбой</a> в работе сервиса Cloudflare, что привело к недоступности множества веб-сайтов по всему миру.</p><p>Доступ к некоторым ресурсам возможен в одних регионах, но недоступен в других. Под удар попали и такие сайты, как BleepingComputer, где пользователи отмечают периодические проблемы с подключением.</p><p>Несмотря на это, мониторинговые инструменты показывают, что издание продолжает получать трафик, что говорит о том, что проблема носит региональный характер.</p><h2>Работы в Сингапуре и Нэшвилле</h2><p>Cloudflare сообщает о запланированных технических работах в Сингапуре и Нэшвилле, но страница статуса сервиса не отображает каких-либо проблем.</p><p>Тем не менее, пользователи, пытающиеся получить доступ к сайтам, использующим Cloudflare, заявляют о браузерных ошибках, сигнализирующих о проблемах с подключением к серверу.</p><h2>Сообщения о проблемах поступают со всего мира</h2><p>Сбой подтверждается также мониторинговым сервисом Downdetector, где около 20:45 PM по московскому времени начали поступать массовые жалобы на Cloudflare.</p><p>Одновременно пользователи соцсети X.com заявили, что сайты недоступны по протоколу IPv4, но все еще доступны через IPv6.</p><p>Представители NodeJS.org также заявили, что сбой Cloudflare влияет на доступ к их сайту и загрузке Node.js.</p><p>На момент написания материала, комментариев от представителей Cloudflare не последовало.</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare запустила DOOM с мультиплеером прямо в браузере при помощи воркеров</title>
      <link>https://tproger.ru/news/cloudflare-zapustila-doom-s-multipleerom-prjamo-v-brauzere-pri-pomoshhi-vorkerov</link>
      <comments>https://tproger.ru/news/cloudflare-zapustila-doom-s-multipleerom-prjamo-v-brauzere-pri-pomoshhi-vorkerov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cloudflare-zapustila-doom-s-multipleerom-prjamo-v-brauzere-pri-pomoshhi-vorkerov</guid>
      <description><![CDATA[<p>Cloudflare перенесла шутер id Software в браузер с помощью воркеров и добавила мультиплеерный режим, чтобы показать скорость технологии.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cloudflare-zapustila-doom-s-multipleerom-prjamo-v-brauzere-pri-pomoshhi-vorkerov">Cloudflare запустила DOOM с мультиплеером прямо в браузере при помощи воркеров</a>»</p>]]></description>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Облачные технологии]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Pet-проекты]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 19 May 2021 11:10:57 GMT</pubDate>
      <content:encoded><![CDATA[<p>Портирование DOOM на разные платформы — это своеобразное соревнование. Легендарный шутер уже запускали на калькуляторах, часах и даже тесте на беременность.</p><p>Но разработчики из Cloudflare опубликовали пост, в котором сообщили о <a href="https://silentspacemarine.com/">свежем порте</a>. Они запустили творение id Software прямо в браузере, используя для этого воркеры.</p><figure><img src="https://media.tproger.ru/uploads/2021/05/1-13.png" alt="" /></figure><p>А для того, чтобы показать скорость работы технологии, разработчики из Cloudflare добавили в свой порт мультиплеерный режим на несколько игроков.</p><figure><img src="https://media.tproger.ru/uploads/2021/05/2-8.png" alt="" /></figure><h3>С какими проблемами столкнулись разработчики при переносе игры?</h3><ul><li><b>В веб-страницах невозможно запустить цикл main().</b> Решили её просто — заменив цикл на функцию <a href="https://emscripten.org/docs/api_reference/emscripten.h.html#c.emscripten_set_main_loop">emscripten_set_main_loop()</a>.</li><li><b>Использование в сетевом коде игры UDP-протокола.</b> В итоге разработчики написали новый сетевой модуль Chocolate Doom. С его помощью они использовали протокол TCP и WebSockets вместо UDP.</li></ul><p>О полном процессе переноса DOOM на рельсы воркеров можно почитать в блоге Cloudflare. Там команда, занимавшаяся портированием, максимально подробно расписала весь процесс.</p><figure><img src="https://media.tproger.ru/uploads/2021/05/3-5.png" alt="" /></figure><p>Отметим, что Cloudflare Workers — очень удобный инструмент. Но у него есть и свои недостатки. Главный из них — вендор лок.</p><p>То есть разработчики, использующие воркеры компании, будут вынуждены постоянно платить именно Cloudflare. Просто потому что их инструмент не стандартизирован. К тому же есть определённые сложности с переносом своего проекта на сторонние воркеры.</p><p>Источник: Блог Cloudflare</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare анонсировал поддержку gRPC</title>
      <link>https://tproger.ru/articles/grpc-cloudflare</link>
      <comments>https://tproger.ru/articles/grpc-cloudflare?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Марина Александровна]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/grpc-cloudflare</guid>
      <description><![CDATA[<p>Проксирование опенсорсного фреймворка удалённого вызова процедур пока в стадии бета-тестирования, подключиться можно на вкладке «Сеть» в панели управления.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/grpc-cloudflare">Cloudflare анонсировал поддержку gRPC</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[JSON]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 06 Oct 2020 13:25:11 GMT</pubDate>
      <content:encoded><![CDATA[<p>В начале октября представители Cloudflare объявили о поддержке проксирования <a href="https://grpc.io/">gRPC</a> — опенсорсного фреймворка для удалённого вызова процедур. Нововведение пока что на стадии бета-тестирования: зарегистрироваться можно на вкладке «Сеть» в панели управления Cloudflare:</p><figure><img src="https://media.tproger.ru/uploads/2020/10/image1-1.png" alt="" /></figure><p>Источник — блог Cloudflare</p><h2>Что такое gRPC?</h2><p>Такие протоколы, как JSON-REST, уже продолжительное время являются основой для API-интерфейсов. Они хороши тем, что работают поверх HTTP, легко читаются и обладают внушительным набором инструментов для быстрой настройки API. Однако использование <a href="https://tproger.ru/tag/json/">JSON</a>, например, может быть достаточно ресурсоёмким с вычислительной точки зрения.</p><p>В 2015 году Google представила новый протокол gRPC. Высокая производительность достигается за счёт использования протокола HTTP/2 и Protocol Buffers:</p><figure><img src="https://media.tproger.ru/uploads/2020/10/Screenshot_4.jpg" alt="" /></figure><p>Источник — блог Cloudflare</p><p>Да, это делает данные трудно читаемыми, но приводит к более эффективной обработке. Таким образом, gRPC становится особенно популярным в эпоху микросервисов, поскольку устраняет недостатки, изложенные выше.</p><p>Если копнуть глубже, RPC (Remote Procedure Call) эффективнее REST благодаря возможности делать batch-запросы — то есть вызов сразу нескольких процедур за один раз. В то же время за счёт того, что для каждого запроса нужно устанавливать соединение, REST-запросы медленнее.</p><h2>Основные преимущества gRPC</h2><ol><li>Генерирует API на основе спецификаций.</li><li>Является более производительным, чем REST.</li><li>Реализован компанией Google.</li><li>Open Source.</li></ol><h2>Преимущества gRPC в Cloudflare</h2><p>Проксируя свои gRPC API в Cloudflare, вы сразу получаете все плюсы, которые предоставляет сервис:</p><ol><li>Возможность добавить такие элементы безопасности, как WAF и Bot Management.</li><li>Наличие Argo Smart Routing для увеличения производительности.</li><li>Можно использовать Load Balancer для повышения надёжности: настройте несколько gRPC-бэкэндов для обработки нагрузки и разрешите Cloudflare распределять нагрузку между ними.</li><li>Удобно для тех, кто уже пользуется Cloudflare.</li></ol><p>Чтобы начать использовать перечисленные преимущества в связке с надёжностью и безопасностью Cloudflare, достаточно подписаться на бета-версию в панели управления. Представители сервиса призывают оставлять отзывы о тестируемой поддержке gRPC.</p>]]></content:encoded>
    </item>
    <item>
      <title>Во-первых, это красиво: лава-лампы как генератор случайных чисел в Cloudflare</title>
      <link>https://tproger.ru/video/lava-lamp-random-number-generator</link>
      <comments>https://tproger.ru/video/lava-lamp-random-number-generator?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Анна Чуватова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/video/lava-lamp-random-number-generator</guid>
      <description><![CDATA[<p>Вместо привычных псевдослучайных алгоритмов в Cloudflare написали генератор, который берёт случайность из фотографии стены с лава-лампами.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/video/lava-lamp-random-number-generator">Во-первых, это красиво: лава-лампы как генератор случайных чисел в Cloudflare</a>»</p>]]></description>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Видео]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 26 Feb 2020 16:48:39 GMT</pubDate>
      <content:encoded><![CDATA[<p>Генерация случайных чисел — задача не из простых. Как правило, при разработке приходится пользоваться алгоритмами генерации псевдослучайных чисел, которые высчитываются, например, на основе текущего времени.</p><p>Ребятам из Cloudflare тоже однажды понадобились случайные числа. Решили они эту задачу интересно: написали алгоритм, который генерирует случайные числа на основе фотографии стены с лава-лампами.</p><p>Подробно о процессе разработки можно почитать здесь.</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare организовала поддержку HTTP/3 в nginx</title>
      <link>https://tproger.ru/news/http-3-for-nginx</link>
      <comments>https://tproger.ru/news/http-3-for-nginx?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[karpov]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/http-3-for-nginx</guid>
      <description><![CDATA[<p>Cloudflare выпустила модуль HTTP/3 для nginx на базе quiche. Модуль написан на Си, требует патча. Поддержка в nginx 1.17 ожидается через 6-12 месяцев.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/http-3-for-nginx">Cloudflare организовала поддержку HTTP/3 в nginx</a>»</p>]]></description>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Сетевые протоколы]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 18 Oct 2019 14:32:53 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloudflare создала модуль для поддержки HTTP/3 в nginx — это должно упростить развёртывание серверов с использованием протокола нового поколения. Он сделан в форме надстройки над библиотекой quiche. Написан на языке Си.</p><p>Штатную поддержку протокола в ветке 1.17 обещают обеспечить через 6−12 месяцев. Для сборки на основе версии nginx 1.16 нужен патч (есть на GitHub) и код библиотеки quiche — после этого nginx нужно пересобрать с опциями -- with-http_v3_module, --with-quiche=../quiche. Поддержка TLS должна стоять на BoringSSL, OpenSSL пока не работает.</p><p>Про сам HTTP/3 можно почитать <a href="https://tproger.ru/news/quic-standardize-http3/">у нас на сайте</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Google, Mozilla и Cloudflare начали поддерживать протокол HTTP/3</title>
      <link>https://tproger.ru/news/chrome-firefox-cloudflare-http3</link>
      <comments>https://tproger.ru/news/chrome-firefox-cloudflare-http3?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Никитина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/chrome-firefox-cloudflare-http3</guid>
      <description><![CDATA[<p>Chrome Canary уже поддерживает HTTP/3, Firefox Nightly получит поддержку позже, а владельцы сайтов Cloudflare могут включить протокол одной кнопкой.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/chrome-firefox-cloudflare-http3">Google, Mozilla и Cloudflare начали поддерживать протокол HTTP/3</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Браузеры]]></category>
      <category><![CDATA[Mozilla]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 27 Sep 2019 14:42:18 GMT</pubDate>
      <content:encoded><![CDATA[<p>Автор: Андрей Карпов</p><p>Google Chrome, Mozilla Firefox и Cloudflare начинают поддерживать HTTP/3. Это новая итерация протокола HTTP, с ним передача данных станет быстрее, надёжнее и безопаснее. Почему этот протокол такой крутой и зачем он нужен, рассказывает Cloudflare.</p><p>Чтобы передача данных проходила с использованием HTTP/3, протокол должны поддерживать и сайт, и браузер. В Canary-сборке Chrome поддержку уже реализовали, скоро её добавят в Firefox Nightly. Владельцам сайтов на Cloudflare достаточно ткнуть одну кнопку в панели управления, остальным придётся подключать поддержку самостоятельно.</p><figure><img src="https://media.tproger.ru/uploads/2019/09/27.-cloudflare-1.jpg" alt="" /></figure><p>Чтобы включить поддержку HTTP/3 в Chrome Canary, надо дать команду --enable-quic --quic-version=h3-23. Как это сделать, описано <a href="https://www.chromium.org/developers/how-tos/run-chromium-with-flags">на сайте проекта Chromium</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Компания Epik отказалась предоставлять услуги 8chan вместо Cloudflare</title>
      <link>https://tproger.ru/news/epik-8chan-hosting</link>
      <comments>https://tproger.ru/news/epik-8chan-hosting?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Никитина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/epik-8chan-hosting</guid>
      <description><![CDATA[<p>После отказа Cloudflare портал 8chan искал хостинг у компании Epik, но и она не стала с ним работать, хотя раньше приютила форум Daily Stormer.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/epik-8chan-hosting">Компания Epik отказалась предоставлять услуги 8chan вместо Cloudflare</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 07 Aug 2019 18:32:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>В понедельник <a href="https://tproger.ru/news/cloudflare-8chan-conflict/">рассказывали</a> вам о том, как Cloudflare отказалась предоставлять услуги порталу 8chan. На этом портале виновные в массовых убийствах выкладывали свои манифесты. Цензура это или нет, а когда 8chan обратился за услугами хостинга к компании Epik, та тоже ему отказала.</p><p><a href="https://www.seattletimes.com/business/technology/seattle-area-internet-firm-decides-not-to-host-extremist-8chan-website-linked-to-el-paso-shootings/">Как отмечает The Seattle Times</a>, Epik случалось и раньше предоставлять свои сервисы клиентам, от которых отказывались другие компании. К примеру, два года назад Cloudflare отказала в хостинге форуму неонацистов Daily Stormer. Сейчас тот хостится у Epik.</p><p>С 8chan это не сработало. Поначалу Epik склонялась к сотрудничеству, даже успела в понедельник перенести портал на свои серверы. Однако «после долгих размышлений» компания решила тоже уйти в сторону.</p><p>Но и это ещё не всё. Сегодня днём Комитета Министерства внутренней безопасности США <a href="https://www.engadget.com/2019/08/06/house-committee-asks-8chan-owner-to-testify/">сообщила</a>, что вызвала владельца 8chan Джима Уоткинса на допрос на тему борьбы с экстремистским контентом. Об этом представители Комитета сообщили в твиттере.</p>]]></content:encoded>
    </item>
    <item>
      <title>Вечерний обзор IT-новостей 7 августа</title>
      <link>https://tproger.ru/newsletter/7-aug-2019</link>
      <comments>https://tproger.ru/newsletter/7-aug-2019?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Никитина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/newsletter/7-aug-2019</guid>
      <description><![CDATA[<p>Компания Epik вслед за Cloudflare отказала 8chan в услугах, а владельца портала вызвал комитет Министерства внутренней безопасности США.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/newsletter/7-aug-2019">Вечерний обзор IT-новостей 7 августа</a>»</p>]]></description>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Аргументы и функции]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 07 Aug 2019 17:14:27 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Политика и мораль</h2><p>Cloudflare недавно отказалась предоставлять услуги порталу 8chan (<a href="https://tproger.ru/news/cloudflare-8chan-conflict/">начало истории тут</a>). Цензура это или нет, но компания Epik ему тоже отказала.</p><p>The Seattle Times <a href="https://www.seattletimes.com/business/technology/seattle-area-internet-firm-decides-not-to-host-extremist-8chan-website-linked-to-el-paso-shootings/">говорит</a>, что Epik случалось и раньше предоставлять свои сервисы клиентам, от которых отказывались другие провайдеры. Два года назад она приютила неонацистский форум Daily Stormer, изгнанный с серверов той же Cloudflare.</p><p>Поначалу Epik склонялась к сотрудничеству, даже успела в понедельник перенести портал на свои серверы. Однако «после долгих размышлений» <a href="https://epik.com/blog/epik-draws-line-on-acceptable-use.html">решила</a> самоустраниться.</p><p>Это ещё не всё. Комитет Министерства внутренней безопасности США <a href="https://www.engadget.com/2019/08/06/house-committee-asks-8chan-owner-to-testify/">вызвал</a> владельца 8chan Джима Уоткинса на допрос. Ему предлагается предстать перед чиновниками и объясниться за экстремистский контент на своём сайте.</p><p>***</p><p>«Русская служба BBC News» <a href="https://www.bbc.com/russian/features-49255791">заявила</a>, что проблемы с мобильным интернетом на московских митингах всё-таки устроили власти. По информации издания, один из больших операторов якобы разослал сотрудникам call-центров письмо:</p><blockquote>Коллеги, на территории Москвы в Пресненском, Басманном районах и центре Москвы часть БС [базовых станций] отключена по требованию силовых ведомств.</blockquote><p>При этом признавать наличие аварий или сбоев со стороны компании руководство неназванного оператора запретило.</p><p>Никто из «большой тройки» официально информацию не подтвердил.</p><h2>Искусственный интеллект</h2><p>В Государственном университете управления в октябре <a href="https://tass.ru/nauka/6740737">поставят</a> стойки с камерами для распознавания эмоционального состояния студентов. Специалисты будут следить, как настроение студентов меняется в зависимости от их расписания, дня недели, времени суток. Эти данные помогут составлять «индивидуальные треки обучения».</p><p>Сейчас нейросеть ориентируется на разрез глаз, положение губ и мимические морщины. Пока она распознаёт лишь радость и сожаление.</p><p>Разработчики хотят в будущем увеличить количество распознаваемых эмоций и маркеров эмоционального состояния и выйти с продуктом на рынок.</p><h2>Уязвимости</h2><p><a href="https://www.opennet.ru/opennews/art.shtml?num=51234">Spectre</a>: нашлась новая уязвимость в механизме спекулятивного выполнения процессоров Intel (и в некоторых случаях — AMD). Её назвали SWAPGS. Она так же основана на восстановлении данных из кэша процессора после спекулятивного выполнения инструкций. Предыдущие патчи от неё не защищают, но для Linux, ChromeOS, Android и Windows уже есть исправления.</p><p><a href="https://habr.com/ru/company/pm/blog/462479/">Steam</a>: на «Хабре» вышла статья о том, как один специалист попытался доложить Valve об уязвимости повышения привилегий в Windows-клиенте Steam. Специалисту дали от ворот поворот, сказав, что эта проблема не входит в область исследований, но при этом запретив публиковать по ней отчёт.</p><p><a href="https://help.twitter.com/en/ads-settings">Twitter</a>: в рекламных настройках мобильных приложений соцсети обнаружился баг. Оказывается, с мая прошлого года доверенные аналитические и рекламные партнёры Twitter могли получать информацию о стране пользователя и о взаимодействии его с рекламой. Согласия на передачу этих данных пользователи не давали.</p><p>Ещё Twitter повинилась, что показывала рекламу на основе выводов о том, каким устройством пользуется человек. Разрешения на это соцсеть тоже не получала.</p><p>Проблемы уже исправлены. Никакие личные данные в чужие руки не попали, пароли менять тоже не надо. И то хлеб.</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare назвала имиджборд 8chan «выгребной ямой ненависти» и отказалась с ним работать</title>
      <link>https://tproger.ru/news/cloudflare-8chan-conflict</link>
      <comments>https://tproger.ru/news/cloudflare-8chan-conflict?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Никитина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cloudflare-8chan-conflict</guid>
      <description><![CDATA[<p>Стрельба в техасском Эль Пасо, где погибли 20 человек, и манифест стрелка на 8chan подтолкнули Cloudflare разорвать сотрудничество с этим порталом.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cloudflare-8chan-conflict">Cloudflare назвала имиджборд 8chan «выгребной ямой ненависти» и отказалась с ним работать</a>»</p>]]></description>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 06 Aug 2019 12:19:54 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloudflare сегодня опубликовала заявление об отказе сотрудничать с порталом 8chan. Всё из-за стрельбы в техасском городе Эль Пасо 4 августа, в которой погибло 20 человек. О происшествии можно почитать на «Медузе».</p><p>Перед терактом стрелок выложил свой манифест на 8chan. Так же поступил и стрелок в новозеландском городе Крайстчёрч (рассказывали об этом <a href="https://tproger.ru/newsletter/15-mar-2019/">в обзоре новостей за 15 марта</a>).</p><p>Cloudflare назвала 8chan «выгребной ямой ненависти», обвинила администраторов в том, что они не способны создать адекватную атмосферу на портале. По словам компании, «8chan теперь не наша проблема, но он остаётся проблемой всего Интернета».</p><p>При этом Cloudflare не уверена, что её отказ от сотрудничества с 8chan приведёт к закрытию портала. Вакантное место могут занять конкурирующие сервисы.</p><p>В комментариях к заявлению некоторые читатели выразили несогласие с действиями Cloudflare. По их мнению, это явный случай цензуры, и он может стать опасным прецедентом. Сама Cloudflare признаёт, что «8chan не отказывается от модерации своего полного ненависти сообщества и не нарушает тем самым букву закона». Тем не менее создание атмосферы, порождающей насилие, является, по её мнению, нарушением духа закона.</p>]]></content:encoded>
    </item>
    <item>
      <title>Вечерний обзор IT-новостей 5 августа</title>
      <link>https://tproger.ru/newsletter/5-aug-2019</link>
      <comments>https://tproger.ru/newsletter/5-aug-2019?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Никитина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/newsletter/5-aug-2019</guid>
      <description><![CDATA[<p>Cloudflare разорвала отношения с 8chan из-за стрельбы в Эль Пасо, а корейские исследователи научили алгоритм читать набор на воображаемой клавиатуре.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/newsletter/5-aug-2019">Вечерний обзор IT-новостей 5 августа</a>»</p>]]></description>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Аргументы и функции]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 05 Aug 2019 16:45:15 GMT</pubDate>
      <content:encoded><![CDATA[<h2>(не)Цензура?</h2><p>Cloudflare сегодня опубликовала заявление об отказе сотрудничать с порталом 8chan. Всё из-за вчерашней стрельбы в техасском городе Эль Пасо, в результате которой погибло 20 человек. О происшествии можно почитать на «Медузе».</p><p>Перед терактом стрелок выложил свой манифест на 8chan. Так же поступил стрелок в новозеландском городе Крайстчёрч (рассказывали об этом <a href="https://tproger.ru/newsletter/15-mar-2019/">в обзоре новостей за 15 марта</a>).</p><p>Cloudflare назвала 8chan «выгребной ямой ненависти», обвинила администраторов в том, что они не способны создать адекватную атмосферу на портале. «8chan теперь не наша проблема, но он остаётся проблемой всего Интернета».</p><p>При этом компания не уверена, что её отказ от сотрудничества с 8chan приведёт к закрытию портала. Вакантное место могут занять конкурирующие сервисы.</p><p>В комментариях к заявлению некоторые читатели выразили несогласие с действиями Cloudflare. По их мнению, это явный случай цензуры, и он может стать опасным прецедентом. Сама Cloudflare признаёт, что «8chan не отказывается от модерации своего полного ненависти сообщества и не нарушает тем самым букву закона». Тем не менее создание атмосферы, порождающей насилие, можно посчитать нарушением духа закона.</p><h2>(не)Зелёный Гоблин?</h2><p>Французский изобретатель за 22 минуты <a href="https://thebell.io/frantsuzskij-izobretatel-peresek-la-mansh-na-reaktivnoj-doske/">перелетел</a> на своём реактивном ховерборде Ла-Манш — это 35 километров. Средняя скорость полёта была 160−170 километров в час, но устройство умеет разгоняться до 195 километров в час. (Если без человека, то до 400. Человек с возу, ховерборду легче.)</p><h2>Парой строк о прочем</h2><p>Шатдаун: международная организация NetBlocks заметила, что во время субботних протестов в Москве отключали сети Wi-Fi и мобильный интернет. Мобильные операторы говорят, что во всём виноваты перегрузки. Что в некоторых частях города собиралось слишком много людей, и это провоцировало сбои. Чётких доказательств того, что шатдаун организовали власти, нет.</p><p><a href="https://www.kommersant.ru/doc/4052451">Утечка</a>: в апреле из-за уязвимости в системах «Бинбанка» утекли данные клиентов — ФИО, паспортные данные, телефон, адрес. Уязвимость закрыли, но данные пошли гулять по Интернету. Сейчас базу из 70 тысяч строк продают в даркнете по 5 рублей за строку. Источники «Коммерсанта» говорят, что полиция приняла больше сотни заявлений о краже средств у московских клиентов банка.</p><p><a href="https://www.bleepingcomputer.com/news/security/misconfigured-jira-servers-leak-info-on-users-and-projects/">Неправильные настройки</a>: из-за неправильных настроек в Jira в публичном доступе оказалась информация о сотрудниках и внутренних проектах крупных компаний: Google, Yahoo, NASA, Lenovo, 1Password, Zendesk. Ошибка кроется в фильтре видимости. По умолчанию ставится «видят все», но это значит не «все сотрудники», а «все в Интернете».</p><p><a href="https://nplus1.ru/news/2019/08/03/invisible-keyboard">Невидимая клавиатура</a>: корейские разработчики создали алгоритм, который позволяет набирать текст на тачскрине с воображаемой клавиатурой. Руки можно располагать в любой части тачскрина, главное, чтобы набор шёл по QWERTY-раскладке. ML-алгоритм предугадывает, какой текст вводит пользователь.</p><figure><img src="https://media.tproger.ru/uploads/2019/08/601342875a832d11bb7326cb8f50cb5f1.jpg" alt="" /></figure>]]></content:encoded>
    </item>
    <item>
      <title>Сбой в Cloudflare произошёл из-за неправильного развёртывания софта на серверах</title>
      <link>https://tproger.ru/news/cloudflare-bad-software-deploy</link>
      <comments>https://tproger.ru/news/cloudflare-bad-software-deploy?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Никитина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cloudflare-bad-software-deploy</guid>
      <description><![CDATA[<p>Регулярное выражение в новом наборе правил Web Application Firewall перегрузило процессоры серверов по всему миру, пользователи видели ошибку 502.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cloudflare-bad-software-deploy">Сбой в Cloudflare произошёл из-за неправильного развёртывания софта на серверах</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 03 Jul 2019 14:35:47 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloudflare объяснила причину вчерашнего масштабного сбоя. Как оказалось, разработчики выкатывали новый набор правил для Web Application Firewall. Они касались защиты от атак с использованием встроенного JS-кода.</p><p>Одно из правил содержало регулярное выражение, при развёртывании на всю сеть оно спровоцировало всплеск нагрузки на процессоры в серверах Cloudflare по всему миру.</p><figure><img src="https://media.tproger.ru/uploads/2019/07/cpuspike-11.png" alt="" /></figure><p>В результате пользователи сервисов видели ошибку 502 — «Bad Gateway».</p><p>Команда Cloudflare отметила, что не сталкивалась с подобными проблемами прежде, поэтому исправление ситуации заняло много времени. Через полчаса после начала неполадок разработчики нашли их причину и отключили весь набор правил. Работа сайтов восстановилась.</p><p>После этого разработчики перепроверили правила, исправили ошибку, протестировали и снова развернули, уже успешно. Это произошло через сорок минут после отката.</p>]]></content:encoded>
    </item>
    <item>
      <title>Вечерний обзор IT-новостей 2 июля</title>
      <link>https://tproger.ru/newsletter/2-jul-2019</link>
      <comments>https://tproger.ru/newsletter/2-jul-2019?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Никитина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/newsletter/2-jul-2019</guid>
      <description><![CDATA[<p>Второй за две недели сбой Cloudflare уронил половину интернета вместе с Downdetector, а «Яндекс» выступил с предложением по колдунщикам.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/newsletter/2-jul-2019">Вечерний обзор IT-новостей 2 июля</a>»</p>]]></description>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Аргументы и функции]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 02 Jul 2019 17:38:29 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Сбой в Cloudflare</h2><p>Второй раз за две недели Cloudflare <a href="https://www.cloudflarestatus.com/">утянул</a> за собой на дно половину Интернета (включая Tproger). На короткое время отказал даже Downdetector, куда все бросаются посмотреть: «Это у всех или я один такой?».</p><p>Неполадки начались примерно в 17 часов по Москве. На момент подготовки обзора всё уже починили. Cloudflare описала ситуацию так:</p><blockquote>По всему миру во всех сервисах Cloudflare произошёл крупный сбой. Мы засекли всплеск нагрузки на ЦП — он привел к отказу первичных и вторичных систем. Мы завершили процесс, который спровоцировал этот всплеск &lt;…&gt; Мы продолжаем расследовать причины произошедшего.</blockquote><p>Вот так, одна компания, а какое влияние.</p><h2>Медиа: аватары</h2><p>Есть такой мессенджер — Chudo. В нём пользователи могут на основании своей фотографии сделать мультяшного аватара. 2D или 3D, на выбор. Автор издания Bored Panda попробовал сделать аватары знаменитостей, и <a href="https://www.boredpanda.com/artificial-intelligence-turns-celebrities-into-cartoons-and-the-results-are-amazingly-fun/">получилось вполне узнаваемо</a>. Вот так выглядит Уилл Смит:</p><h2>Парой строк о прочем</h2><p><a href="https://vc.ru/services/73757-yandeks-predlozhil-razmestit-ssylki-na-svoi-servisy-v-avito-ciane-i-2gis-v-otvet-na-pretenzii-k-interaktivnoy-vydache">«Яндекс»</a> говорит, что готова подумать о размещении конкурентов в колдунщиках, если это будет стандартом для отрасли. Это продолжение <a href="https://tproger.ru/news/wizards-ya-search-complaining/">вчерашней истории</a>.</p><p><a href="https://vc.ru/tech/73753-microsoft-otkazalas-ot-novyh-funkciy-v-osennem-krupnom-obnovlenii-windows-10">Microsoft</a> отказывается от крупных фич в осеннем обновлении Windows 10, чтобы сосредоточиться на улучшении производительности.</p><p><a href="https://webmasters.googleblog.com/2019/07/rep-id.html">Google</a> подготовила документы, чтобы веб-стандарту REP (Robots Exclusion Protocol) присвоили статус официального. Это протокол исключений для поисковых роботов, и работает он уже 25 лет.</p><p><a href="https://tproger.ru/news/github-2fa-verification/">GitHub</a> ввела обязательную верификацию при входе с новых устройств. Это касается тех, кто не включил в профиле 2FA. Код для верификации будет приходить на email-адрес.</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare частично обвинила Verizon в масштабном сбое из-за некорректной маршрутизации</title>
      <link>https://tproger.ru/news/cloudflare-outage-report</link>
      <comments>https://tproger.ru/news/cloudflare-outage-report?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Никитина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cloudflare-outage-report</guid>
      <description><![CDATA[<p>Из-за утечки маршрутов через пенсильванского провайдера DQE несколько часов не работали Cloudflare, Facebook, Apple, AWS и другие сервисы.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cloudflare-outage-report">Cloudflare частично обвинила Verizon в масштабном сбое из-за некорректной маршрутизации</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 25 Jun 2019 13:17:57 GMT</pubDate>
      <content:encoded><![CDATA[<p>Днём 24 июня, примерно с 13:30 до 16:30 по Москве, у пользователей по всему миру не работало множество сайтов и сервисов из-за сбоя в маршрутизации трафика. Это коснулось Cloudflare, Facebook, Apple, AWS, Akamai, Linode и многих других ресурсов. Из-за утечки маршрутов трафик к ним шёл через небольшого пенсильванского провайдера.</p><p>Спустя некоторое время команда Cloudflare опубликовала отчёт о происшествии. Значительную долю ответственности специалисты возложили на Verizon — у крупного транзитного провайдера не оказалось простых инструментов, способных предотвратить последствия утечки.</p><h2>Как это произошло?</h2><p>Пенсильванский интернет-провайдер DQE Communications использовал BGP Optimizer — инструмент, который разбивает блоки IP-адресов на мелкие части и таким образом конкретизирует маршрутизацию внутри сети. Если проводить аналогию с географией, вместо области или штата он указывает на конкретный город в области или штате. Более «конкретные» маршруты всегда приоритетнее «общих».</p><p>DQE начал передавать эти маршруты своему клиенту, Allegheny Technologies. У того, оказалось, также было настроено подключение к транзитному провайдеру Verizon. «Приоритетные» маршруты перетекли к нему, а он стал транслировать их на весь интернет.</p><p>В результате большое количество трафика пошло через Verizon к DQE, и они просто не справились с такой нагрузкой на свои сети.</p><p>Когда начались сбои, специалисты из Cloudflare попытались связаться с Verizon или DQE. В США было раннее утро, так что связаться получилось не сразу. Verizon так и не ответил, зато эксперты из DQE после небольшой задержки помогли перекрыть утечку.</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare начала бета-тестирование совместного использования Apps и Workers</title>
      <link>https://tproger.ru/news/cloudflare-workers-with-apps</link>
      <comments>https://tproger.ru/news/cloudflare-workers-with-apps?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Артем Гаврилов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cloudflare-workers-with-apps</guid>
      <description><![CDATA[<p>Скрипты Cloudflare Workers встраиваются в веб-приложения через Cloudflare Apps: доступны персонализация, A/B-тестирование, безопасность и локализация.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cloudflare-workers-with-apps">Cloudflare начала бета-тестирование совместного использования Apps и Workers</a>»</p>]]></description>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Облачные технологии]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 19 Nov 2018 11:37:43 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloudflare рассказала о начале бета-тестирования встроенных скриптов Cloudflare Workers в веб-приложения при помощи инструментов Cloudflare Apps. Созданные решения пользователи могут разместить в магазине Cloudflare Marketplace, где они пройдут модерацию и проверку безопасности.</p><h3>Чем полезен Cloudflare Workers для создания приложений?</h3><p>Разработчики приложений использовали Cloudflare Apps для интеграции средств JavaScript, HTML, CSS и модификации таких настроек Cloudflare, как DNS, на веб-сайтах. С началом бета-тестирования они получили возможность экспериментировать с персонализацией, A/B-тестированием, безопасностью, проверкой содержимого и локализацией.</p><p>Чтобы добавить код в приложение, достаточно разместить ссылку на скрипт в файле install.json:</p><p>Также доступно введение переменных со ссылкой в скрипте Workers. Они могут содержать необходимые для установки приложения токены.</p><p>Cloudflare <a href="https://tproger.ru/news/cloudflare-workers/">представила</a> стабильную версию Workers для облачного администрирования веб-приложений на JavaScript в середине марта 2018 года. Сервис позволяет разворачивать JS-скрипты по облачной сети компании в пределах 30 секунд. В конце сентября 2018 года Cloudflare <a href="https://tproger.ru/news/cloudflare-workers-kv-release/">запустила</a> хранилище «ключ-значение» Workers KV. Специалисты Cloudflare утверждают, что Workers обеспечивает считывание данных с низкой задержкой и позволяет создавать приложения, сопоставимые по производительности с сетями доставки содержимого (CDN).</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare выпустила инструмент для защиты API при VPN-соединении</title>
      <link>https://tproger.ru/news/cloudflare-access-api-protection</link>
      <comments>https://tproger.ru/news/cloudflare-access-api-protection?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Артем Гаврилов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cloudflare-access-api-protection</guid>
      <description><![CDATA[<p>Инструмент проверяет JSON Web Token при запросе из браузера или командной строки и позволяет владельцу API настраивать доступ участников команды.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cloudflare-access-api-protection">Cloudflare выпустила инструмент для защиты API при VPN-соединении</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[VPN]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 07 Oct 2018 12:23:53 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloudflare рассказали об инструменте для защиты API при подключении через VPN. Cloudflare Access позволяет приложению контролировать каждого пользователя при прохождении авторизации. Он закрывает доступ к конфиденциальной информации (частным ключам и журналу событий) пользователям, при этом владелец API может настраивать доступ участников команды к данным.</p><h3>Защита API</h3><p>Cloudflare Access проверяет токен (JSON Web Token) при выполнении запроса через браузер или командную строку. Инструмент подписывает токен в момент успешной авторизации поставщика идентификатора. Токен содержит идентификационные данные и данные о сессии. Проверяя его, сеть Cloudflare разрешает или ограничивает доступ к приложению.</p><h3>Авторизация</h3><p>Вход через браузер перенаправляет пользователя к поставщику идентификатора, а данные токена хранятся в cookie-файлах. В то же время инструмент Cloudflare CLI помогает авторизоваться с помощью командной строки. cloudflared открывает окно браузера для авторизации через поставщик идентификатора, после чего Access создаёт токен. Второй вариант доступен в бета-режиме, а правила использования описаны на странице.</p><p>Вместо его размещения в cookie-файлах, он передаётся на устройство, поэтому повторная авторизация не требуется. Время действия токена пользователь задаёт в настройках Cloudflare Access. Во время запроса Access ищет HTTP-заголовок cf-jwt-access-assertion вместо cookie-файлов. При использовании c URL cloudflared использует подкоманду для вставки токена в заголовок.</p><p>Использование cloudflared обусловлено двумя причинами:</p><ul><li>Настраиваемый доступ для определённых пользователей. Владелец настраивает доступ к конечным точкам для ограниченной группы пользователей. Остальная информации будет доступна для всей команды.</li><li>Загрузка конфиденциальной информации. Вместо траты времени на поиск данных через интерфейс, владелец может скачать конфиденциальную информацию при помощи командной строки. Достаточно знать адрес её размещения.</li></ul><h3>Работа с Cloudflare Access</h3><p>Начало использования инструмента пошагово описано в документации. Перед этим необходимо добавить в Cloudflare имя хоста, на котором развёрнут API. Пользователь лично создаёт сконфигурированную политику для различных путей HTTP API. Cloudflare Access отслеживает каждый запрос и принимает или отклоняет его согласно заданным правилам.</p><p>В конце сентября 2018 года Cloudflare <a href="https://tproger.ru/news/cloudflare-esni-adoption/">добавила</a> в свою сеть доставки контента поддержку TLS-расширения ESNI. Оно передает имя хоста при HTTPS-соединении пользователя в зашифрованном виде и таким образом затрудняет отслеживание трафика.</p>]]></content:encoded>
    </item>
    <item>
      <title>Мошенники проводили фишинговые атаки с помощью шлюза IPFS Cloudflare</title>
      <link>https://tproger.ru/news/phishing-ipfs-gateway</link>
      <comments>https://tproger.ru/news/phishing-ipfs-gateway?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Нельсон]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/phishing-ipfs-gateway</guid>
      <description><![CDATA[<p>Поддельные формы авторизации в файловой системе IPFS подписаны действительным сертификатом Cloudflare SSL, что создаёт у жертвы иллюзию подлинности.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/phishing-ipfs-gateway">Мошенники проводили фишинговые атаки с помощью шлюза IPFS Cloudflare</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 05 Oct 2018 15:04:29 GMT</pubDate>
      <content:encoded><![CDATA[<p>Специалисты Bleeping Computer <a href="https://www.bleepingcomputer.com/news/security/phishing-attacks-distributed-through-cloudflares-ipfs-gateway/">обнаружили</a>, что злоумышленники используют <a href="https://www.bleepingcomputer.com/news/technology/cloudflares-ipfs-gateway-makes-it-easy-to-create-distributed-web-sites/">шлюз IPFS</a> Cloudflare для фишинговых атак. Как и Azure Blob, Cloudflare защищает подключения к шлюзу IPFS с помощью собственных сертификатов SSL. Таким образом, мошенники, расположившие в этом хранилище поддельную форму авторизации, создают иллюзию её подлинности.</p><h3>Как это работает?</h3><p>Злоумышленники используют шлюз IPFS для отображения сохранённого в файловой системе IPFS документа HTML.<br /><a href="https://media.tproger.ru/uploads/2018/10/phishing-form-2.jpg"></a></p><p>Страница подписывается действительным сертификатом безопасности Cloudflare SSL, что убеждает пользователя в подлинности заполняемой формы.<br /><a href="https://media.tproger.ru/uploads/2018/10/ssl-certificate.jpg"></a></p><p>Когда пользователь заполнит и отправит форму авторизации, введенные мобильный номер и адрес электронной почты будут отправлены на страницу в домене searchurl.bid, контролируемую мошенниками. Затем жертве показывают документ PDF с названием «Бизнес-модели, бизнес-стратегия и инновации».<br /><a href="https://media.tproger.ru/uploads/2018/10/redirected-pdf.jpg"></a></p><h3>Стандартная схема?</h3><p>В <a href="https://www.virustotal.com/en/domain/searchurl.bid/information/">списке URL-адресов</a>, которые попали в базу VirusTotal и принадлежат домену searchurl.bid, находится большое количество фишинговых страниц. Самые ранние датируются июлем 2018 года. Многие них уже заблокированы, но некоторые всё ещё отображают формы авторизации Google, Windows, DocuSign и т.д. Хотя адреса этих сайтов мало похожи на настоящие, пользователь может не заметить этого и отправить свои данные злоумышленникам.</p><p>Подобный инцидент случился с хранилищем Azure Blob. В начале октября 2018 года стало известно, что мошенники точно так же <a href="https://tproger.ru/news/phishing-resourse-microsoft/">использовали</a> это хранилище для расположения в нём фишинговых форм.</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare рассказала о запуске брандмауэра Firewall Rules</title>
      <link>https://tproger.ru/news/cloudflare-announce-firewall-rules</link>
      <comments>https://tproger.ru/news/cloudflare-announce-firewall-rules?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Артем Гаврилов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cloudflare-announce-firewall-rules</guid>
      <description><![CDATA[<p>Firewall Rules задаёт правила по IP-адресам, стандарту ASN, стране пользователя и user-agent, а также блокирует запросы через гибкий API.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cloudflare-announce-firewall-rules">Cloudflare рассказала о запуске брандмауэра Firewall Rules</a>»</p>]]></description>
      <category><![CDATA[Облачные технологии]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 04 Oct 2018 12:40:47 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloudflare сообщила в своём блоге о запуске брандмауэра Firewall Rules. Он позволяет задавать правила для IP-адресов, бесклассовой адресации, стандарта ASN, страны пользователя, блокировки части HTTP-запроса user-agent, разрешения использовать ресурсы трафика только с определённых IP-адресов (Zone Lockdown).</p><h3>Возможности брандмауэра</h3><p>После общения с клиентами, специалисты Cloudflare выделили несколько моментов, которые и постарались учесть в разработке брандмауэр. По их мнению, Firewall Rules должен предоставлять возможность выбора нескольких правил с частичным соответствием заданных для них параметров, например: User-Agent: *Firefox*.</p><p>При этом клиент сможет постоянно контролировать службы при помощи пользовательского интерфейса или Cloudflare API.</p><h3>Составляющие Firewall Rules</h3><p>Конфигурацию правил можно задать как при помощи API, так и с помощью инструмента Terraform. Модуль брандмауэра состоит из двух компонентов.</p><ul><li>Распознавание: определение правила. Правила предоставляют пользователям доступ к свойствам HTTP-запроса. Заголовки запроса сравниваются по нескольким операторам, в числе которых частичное (contains) и полное (equals) совпадение, а также функция сопоставления по образцу (matches). Последняя позволяет использовать регулярные выражения и доступна для частных предприятий и организаций.</li><li>Действие: выбор действий для выполнения запроса. Доступны 3 действия: JS-проверка, проверка и блокировка. Помимо этого, к стандартным решениям добавили allow, создающее условие с запретом выполнения дальнейших правил при соответствии определённого параметра.</li></ul><figure><img src="https://media.tproger.ru/uploads/2018/10/image1.png" alt="" /></figure><h3>Положительная и негативная модели безопасности</h3><p>Первая модель предполагает разрешает специальные запросы и отклоняет остальные, вторая — напротив, запрещает специальные и разрешает любые другие. По умолчанию Firewall Rules разрешает любой запрос. Противоположная этой политика «Zero Trust» блокирует любой запрос.</p><h3>Инструменты Visual Rule Builder and Expression Editor</h3><p>Первый инструмент даёт возможность создавать проактивные защитные правила для приложений и правила реагирования для уже атакованных приложений. Затем их можно группировать в визуальном редакторе.</p><p>Более сложные требования можно написать с помощью инструмента Rule Editor. Пользователь пишет выражения на языке программы Wireshark и на их основе задаёт правила брандмауэра.</p><p>В конце сентября 2018 года Cloudflare <a href="https://tproger.ru/news/cloudflare-launched-registrar/">запустила</a> собственный регистратор доменных имён. Компания объявила о регистрации доменов без наценки, при этом в предложение включены двухфакторная аутентификация, предоставление бесплатного SSL-сертификата и набор расширений DNSSEC.</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare запустила хранилище «ключ-значение» Workers KV</title>
      <link>https://tproger.ru/news/cloudflare-workers-kv-release</link>
      <comments>https://tproger.ru/news/cloudflare-workers-kv-release?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Артем Гаврилов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cloudflare-workers-kv-release</guid>
      <description><![CDATA[<p>Данные Workers KV размещены более чем в 152 дата-центрах и считываются с низкой задержкой, что даёт приложениям производительность уровня CDN.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cloudflare-workers-kv-release">Cloudflare запустила хранилище «ключ-значение» Workers KV</a>»</p>]]></description>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Облачные технологии]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 30 Sep 2018 15:03:11 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloudflare рассказала о запуске хранилища данных «ключ-значение» Workers KV. Весь объём информации этой платформы находится в более чем 152 дата-центрах по всему миру. Специалисты Cloudflare утверждают, что Workers обеспечивает считывание данных с низкой задержкой и позволяет создавать приложения, сопоставимые по производительности с сетями доставки содержимого (CDN).</p><h3>Возможности</h3><p>Помимо размещения кода на сервере и устройстве пользователя, служба Cloudflare Workers позволяет разместить код в хранилище. Таким образом, часть кода можно оставить в хранилище, вторую часть — на сервере и оставшуюся часть — на устройстве пользователя.</p><p>Также Cloudflare Workers KV предоставляет <a href="https://ru.wikipedia.org/wiki/%D0%A4%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F_%D0%BA%D0%B0%D0%BA_%D1%83%D1%81%D0%BB%D1%83%D0%B3%D0%B0">FaaS</a>-нативное хранилище в виде «ключ-значение». Данные можно переписать или считать при помощи Cloudflare API или при помощи службы Cloudflare Worker.</p><p>Помимо этого, Cloudflare Workers KV можно использовать для:</p><ul><li>Хранения данных корзины покупателя интернет-магазина. Cloudflare API позволяет сохранять или отменять операции в корзине. Данные не нагружают движок сайта или локальное хранилище браузера.</li><li>A/B-тестирования. Информация об уникальных профилях для A/B-тестирования каждого пользователя хранится в Workers KV.</li><li>Аутентификации и верификации. После входа пользователя на сайт, информация о логине, включая токен, переносится в хранилище. Разработчики Cloudflare утверждают, что отсутствие проверки токенов сервером позволяет быстрее отклонять и принимать запросы при аутентификации.</li></ul><figure><img src="https://media.tproger.ru/uploads/2018/09/workers-key-value.jpg" alt="" /></figure><ul><li>Создания страниц. Workers KV хранит данные шаблона или кэша страницы, а также своевременно обновляет их при помощи бэкенд-приложений.</li></ul><h3>Ограничения и цены</h3><p>На конец сентября 2018 года хранилище запущено в бета-версии. Cloudflare обещает увеличить объёмы хранилища и предоставить доступ большему количеству пользователей. Стоимость составляет 5 $ в месяц за 1 ГБ места в хранилище и до 10 млн считываний из него, при доступности:</p><ul><li>до 1 млн ключей для одного пространства имён;</li><li>ключей размером до 2 Кбайт;</li><li>значений размером до 64 Кбайт;</li><li>согласования данных в течение 10 с;</li><li>более 100 тысяч считываний одного ключа в секунду;</li><li>до одной записи ключа в секунду.</li></ul><p>В конце сентября 2018 года Cloudflare <a href="https://tproger.ru/news/cloudflare-launched-registrar/">объявила</a> о запуске регистрации доменных имён в Registrar без наценки. В предложение включены двухфакторная аутентификация, предоставление бесплатного SSL-сертификата и набор расширений DNSSEC.</p>]]></content:encoded>
    </item>
    <item>
      <title>Cloudflare запустила регистратор доменных имён Registrar</title>
      <link>https://tproger.ru/news/cloudflare-launched-registrar</link>
      <comments>https://tproger.ru/news/cloudflare-launched-registrar?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Артем Гаврилов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/cloudflare-launched-registrar</guid>
      <description><![CDATA[<p>Регистрация доменов идёт без наценки и включает двухфакторную аутентификацию, бесплатный SSL-сертификат и набор расширений DNSSEC.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/cloudflare-launched-registrar">Cloudflare запустила регистратор доменных имён Registrar</a>»</p>]]></description>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 28 Sep 2018 11:18:53 GMT</pubDate>
      <content:encoded><![CDATA[<p>Cloudflare объявила о регистрации доменных имён в Registrar без наценки. В предложение включены двухфакторная аутентификация, предоставление бесплатного SSL-сертификата и набор расширений <a href="https://ru.wikipedia.org/wiki/DNSSEC">DNSSEC</a>.</p><h3>Собственный регистратор доменных имён и безопасность</h3><p>Специалисты компании утверждают, что в 2013 году хакеру удалось поставить под угрозу всю их работу по разработке регистратора. С тех пор они работали над улучшением сервиса.</p><p>Компаниям, которые дорожат безопасностью своего домена, Cloudflare предлагает услугу персональной защиты. Например, клиент может пожелать изменить DNS-записи только после звонков с шести разных номеров, при этом в каждом разговоре необходимо назвать пароль.</p><figure><img src="https://media.tproger.ru/uploads/2018/09/custom-control-2x1.jpg" alt="" /></figure><h3>Ценовая политика</h3><p>Специалисты из Cloudflare уверены, что SSL-сертификат клиент должен получать бесплатно. Кроме того цены на домены они изменят только при их росте для всего рынка без каких-либо наценок.</p><p>Компания бесплатно предоставляет редактирование данных для протокола <a href="https://ru.wikipedia.org/wiki/WHOIS">WHOIS</a>. VeriSign, к примеру, поддерживает 2 из 13 корневых DNS-серверов и устанавливает свою цену, которую Cloudflare оставляет прежней:<a href="https://media.tproger.ru/uploads/2018/09/registrar-pricing-1.png"></a></p><h3>Перенос или регистрация домена</h3><p>Cloudflare рассылает приглашения пользователям и компаниям, которые оставили заявку на регистрацию. Чем больше срок пользования услугами компании, тем быстрее придёт приглашение. Другой вариант попадания в число первых — пожертвование движению <a href="https://girlswhocode.com/">Girls Who Code</a>.</p><p>Перенос с одного домена на другой пользователь осуществляет в три этапа:</p><ol><li>Сообщает новому регистратору о желании перенести домен. Необходимо ввести имя домена в новом регистраторе, который проверит возможность переноса. Действие невозможно, если операция уже производилась в течение последних 60 дней.</li><li>Выполняет разблокировку домена. Код состояния домена необходимо перевести в «разблокирован». Блокировка ставится для предотвращения несанкционированных, нежелательных или случайных изменений имени домена.</li><li>Получает код авторизации. Пользователь получает код от старого регистратора и предоставляет новому. Перенос домена продлевает срок его существования.</li></ol><p>В середине сентября 2018 года руководство некоммерческой Интернет-корпорации, которая управляет доменными именами и IP-адресами (ICANN) <a href="https://tproger.ru/news/icann-update-crypto-key-dns/">определило</a> дату смены криптографического ключа. Он призван защитить корневую систему доменных имён. В организации полагают, что это может привести к локальным сбоям.</p>]]></content:encoded>
    </item>
  </channel>
</rss>