company_banner

Отключение Google FloC на вашем веб-сайте

Автор оригинала: Paramdeo Singh
  • Перевод

Google недавно объявил о развертывании технологии Federated Learning of Cohorts (FLoC) в рамках инициативы Privacy Sandbox, направленной на замену сторонних файлов cookie новым методом профилирования пользователей, который собирает данные, генерируемые непосредственно браузером.

Организация Electronic Frontier Foundation (EFF) выпустила обзор FLoC и связанных с ним угроз, а также разработала полезный инструмент для проверки, используется ли браузер пользователя для сбора данных и снятия цифрового отпечатка устройства. 

Сайт для проверки, используется ли в вашем браузере FloC
Сайт для проверки, используется ли в вашем браузере FloC

Примечания: EFF отмечают, что вместо устранение проблемы, Google создает новые. Если любой сайт сможет получить данные о когортах, возникнут условия для предварительной жесткой фильтрации целых групп пользователей, исходя из обобщенных предпочтений. Среди новых рисков также выделяют появление фактора для более интенсивного использования методов косвенной идентификации пользователя(browser fingerprinting), использующих специфичные настройки и особенности оборудования.

Plausible Analytics также присоединился к статье, в которой объясняется, какое отношение FLoC имеет к пользователям и разработчикам.  - что послужило источником вдохновения для этого краткого руководства.

Заголовок FLoC

Основной способ, с помощью которого конечный пользователь может избежать FLoC, — это просто не использовать Chrome, а вместо этого выбрать браузер, уважающий конфиденциальность, например Mozilla Firefox. 

Но владельцы веб-сайтов также могут гарантировать, что их веб-серверы не участвуют в этой огромной сети, отказавшись от FLoC.

Для этого необходимо добавить следующий кастомный заголовок HTTP-ответа:

Permissions-Policy: interest-cohort=()

В этом руководстве вы найдете инструкции о том, как добавить кастомные заголовки HTTP-ответов в конфигурации веб-серверов и прокси-серверов.

NGINX

Добавьте в файл конфигурации NGINX следующее:

# /etc/nginx/sites-available/default.conf

server {
    location / {
add_header Permissions-Policy interest-cohort=();
...

Перезапустите NGINX с помощью команды service nginx restart

Apache

Добавьте следующую директиву в свой файл конфигурации Apache:

# /www/htdocs/example.com/.htaccess 

<IfModule mod_headers.c>
  Header always set Permissions-Policy: interest-cohort=()
</IfModule>

Перезапустите Apache с помощью команды service apache2 restart

Caddy

Добавьте следующее в свой Caddyfile:

# Caddyfile

example.com {
header Permissions-Policy "interest-cohort=()"
...

Перезапустите Caddy с помощью команды caddy reload

Lighttpd

Добавьте в файл конфигурации Lighttpd следующее:

# /etc/lighttpd/lighttpd.conf

server.modules += ( "mod_setenv" )

setenv.add-response-header = ( "Permissions-Policy" => "interest-cohort=()" )

Перезапустите Lighttpd с помощью команды service lighttpd restart

Netlify

Добавьте в файл конфигурации Netlify следующее:

# netlify.toml

[[headers]]
  for = "/*"
  [headers.values]
    Permissions-Policy = "interest-cohort=()"

Если вы предпочитаете использовать _headers файл вместо файла конфигурации TOML, добавьте в этот файл вместо указанных выше строчек следующее:

# _headers

/*
  Permissions-Policy: interest-cohort=()

При следующей сборке или развертывании Netlify добавит и обслужит заголовки.

GitHub Pages

В настоящее время не существует возможности добавлять кастомные заголовки HTTP при использовании GitHub Pages. Однако есть обходной путь — добавление метатегов на сами страницы.

Добавьте в раздел <head> HTML-кода следующее:

<meta http-equiv="Permissions-Policy" content="interest-cohort=()"/>

GitLab Pages

Как и в случае с GitHub, при использовании GitLab Pages нет возможности добавлять кастомные заголовки HTTP. Таким образом, придется воспользоваться тем же методом, что и выше, и устанавливать директивы в самом HTML.

Однако, если вы пользуетесь GitLab Community Edition, можно установить заголовки, добавив в свой gitlab.rb файл следующее:

# gitlab.rb

gitlab_pages['headers'] = [ "Permissions-Policy: interest-cohort=()" ]

Вы также можете указать заголовки при запуске GitLab Pages binary:

./gitlab-pages -header "Permissions-Policy: interest-cohort=()"

CloudflareWorkers

Вы можете создать следующий Worker Script, чтобы установить заголовки ответа:

addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  let response = await fetch(request)
  let newHeaders = new Headers(response.headers)
  newHeaders.set("Permissions-Policy", "interest-cohort=()")

  return new Response(response.body, {
    status: response.status,
    statusText: response.statusText,
    headers: newHeaders
  })
}

Добавьте этот Worker Script в домен, установив этот домен в качестве Worker Route.

WordPress

WordPress позволяет устанавливать заголовки из своей кодовой базы с помощью хуков. Добавьте следующий код в конец functions.php файла активной темы:

function disable_floc($headers) {
    $headers['Permissions-Policy'] = 'interest-cohort=()';
    return $headers;
  }

add_filter('wp_headers', 'disable_floc');

Сохраните файл в админ-панели WordPress. Все новые запросы будут содержать необходимый заголовок.

Если вы используете какие-либо механизмы кэширования и плагины (например, FastCGI Cache от NGINX, W3 Total Cache и т. Д.), необходимо очистить кэш, чтобы он был повторно заполнен с указанными выше дополнениями.


Дата-центр ITSOFT — размещение и аренда серверов и стоек в двух дата-центрах в Москве. За последние годы UPTIME 100%. Размещение GPU-ферм и ASIC-майнеров, аренда GPU-серверов, лицензии связи, SSL-сертификаты, администрирование серверов и поддержка сайтов.

ITSOFT
Поддержка сайтов на базе собственного дата-центра

Похожие публикации

Комментарии 18

    +5
    Но владельцы веб-сайтов также могут гарантировать, что их веб-серверы не участвуют в этой огромной сети, отказавшись от FLoC.
    Для этого необходимо добавить следующий кастомный заголовок HTTP-ответа:

    Вангую, что очень скоро обнаружится: Chrome игнорирует этот загловок. Разумеется, исключительно из-за непреднамеренной ошибки, которую вот-вот заменят другой ошибкой исправят.
    Просьба к хулиганам прекратить вас бить, как способ борьбы с уличным насилием… как дети эти EFF, чесслово.
      +2

      Зачем игнорировать — это может вызвать возмущение общественности.


      Просто пройдёт по массам неподтверждаемый официально слух о том что сайты внедрившие указанную в этой статье опцию будут Гуглом пессемизированы в его поисковой выдаче.


      После этого процент тех кто будет эту опцию использовать будет строго около нуля :)

        0
        Всеобщее игнорирование Do-Not-Track вызывает просто бурю негодования у общественности, которая в массе своей даже не в курсе, что велосипед заголовок с просьбой не отслеживать уже сто лет как изобретен. Пессимизацию, кстати, можно отловить и вызвать куда большее бурление говн, вплоть до привлечения внимания регуляторов.
          0
          Пессимизацию, кстати, можно отловить

          Невозможно отловить то чего нет! Я же не писал что Гугл будет реально пессимизировать — достаточно просто слуха :))))

            0
            Алгоритмы поисковиков постоянно тестируются сеошниками, любые странности исследуются, даже без слухов корреляцию между заголовком и местом в выдаче заметят.
              0
              В том то и дело! Никакой пессимизации нет. Просто Google пустил слух, что она есть, а популярность, знаете ли, важнее Do-Not-Track.
                0
                Зачем такие сложности, чего б тогда не пустить слух, что чем выше бюджет на GoogleAds — тем выше строчка в выдаче?
                  0
                  чем выше бюджет на GoogleAds — тем выше строчка в выдаче

                  Вы были в полёте к Альфе-Центавра и обратно последние годы? :)
                  Такому слуху уже больше десятка лет !

                    0
                    Не, я просто болт кладу на слухи. Есть официально заявленный функционал, если результат не соответствует ожиданиям — сервис отправляется… в полет к Альфе Центравра ;)
      +5
      > Перезапустите NGINX с помощью команды service nginx restart

      reload достаточно. После restart он полезет сканировать кэши и всё такое, так что restart сильно избыточен.
        0
        Если любой сайт сможет получить данные о когортах

        О каких-то когортах упомянули без пояснения и сходу начали давать инструкции о том, как их отключать :) А что за floc такой и чем конкретно он опасен?


        UPD:
        Как я понял, "когорты" это группы пользователей со схожими интересами, которые будут собираться с помощью floc. И недостаток тут в том, что количество пользователей в этих группах будет невелико — несколько тысяч — поэтому, намного проще будет отличить пользователя по отпечатку браузера. По сути, от этого алгоритма выигрывают только рекламодатели, которые смогут показывать рекламу нужным группам пользователей.

          0

          Ну Гугл точно это не для защиты пользователей делает.

          +4
          Я один считаю, что должно быть наоборот? Что сайты, заинтересованные в рекламе и слежке по когортам, должны у себя добавить нужные заголовки?
            0
            Если б мир был так прост — он был бы симуляцией =)
              0
              Ага, хорошо написано!
                0
                Не загружайте сторонние скрипты, которые могут… проще говоря, не загружайте сторонние скрипты. Точка. Потому что если они могут, они обязательно будут.
                0

                Feature-Policy (это предыдущее название Permissions-Policy заголовка) не работает если используется с http-equiv. Будет ли оно работать для Permissions-Policy?


                П.С. С обычными директивами вида geolocation Permissions-Policy тоже не работает.


                Ответ найден: Использование http-equiv не будет работать для FLOC, т.к. http-equiv не работает с Permissions-Policy заголовком.

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое