Серверные логи и приватностьВаш хостер перестал вести логи. Ваш сервер — нет.

Все остальные материалы на этом сайте спрашивают, что о вас записывает хостинг-компания. Этот переворачивает вопрос: в тот момент, когда вы запускаете сайт, вы сами становитесь компанией, о которой кто-то спрашивает — а файл с вашими читателями настроили вы сами, на машине, за которую больше некого винить.

13 мин. чтения · Последняя проверка 8 сентября 2026 · Здесь нет ничего продающего

Теперь вы — сторона, которой пишут

Тот, кто хочет узнать, кто посещал ваш сайт, начинает не с вашего хостера. Он начинает с вас — потому что именно вы единственная сторона в цепочке, у которой есть прямой интерес хранить эту запись, юридический адрес, по которому можно написать, и никакого отчёта о прозрачности, который можно было бы потом опубликовать.

Хостинг-компании неловко это писать, и вот арифметика, которая за этим стоит. Перечень, опубликованный здесь, гласит, что HTTP-логи доступа уничтожаются по суточному таймеру и что никакой истории адресов после этого нигде не остаётся. Обычный веб-сервер на арендованной у нас машине по умолчанию хранит собственный лог доступа около двух недель, в ночной резервной копии — год, и оба этих числа никто не выбирал осознанно. Тщательный выбор хостера сводится на нет настройкой по умолчанию, которую никто не прочитал.

Что на самом деле содержит одна строка лога доступа

Формат по умолчанию у обоих распространённых веб-серверов не менялся двадцать пять лет, и почти никто не читает его как запись о человеке. Стоит хотя бы раз прочитать его именно так, потому что каждое поле ниже — это отдельное раскрытие данных, и они складываются друг с другом.

ПолеЧто оно говоритЧто по нему можно установить
Адрес клиентаАдрес, с которого пришёл запрос, полностьюАбонентская линия, которую тот, кто её выдал, может свести к домохозяйству или работодателю, а любой обладатель базы данных — к городу
Временная метка, до секундыКогда пришёл запрос, со смещением часового поясаЗакономерность часов, которая выдаёт сначала рабочий день, потом регион, потом распорядок жизни
Строка запросаМетод, весь путь целиком, включая всё, что после знака вопроса, и протоколКаждый токен, идентификатор сессии и одноразовая ссылка, которые когда-либо оказывались в URL на вашем сайте
Код статуса и объём в байтахСработало ли всё, и сколько данных вернулосьКакой документ был отдан. 200 известной длины называет страницу, даже если соединение было зашифровано
РеферерСтраница, на которой читатель был непосредственно перед этимЛичная ссылка, которую им прислали, форум, где вас обсуждали, а в старых реферерах — ещё и поисковый запрос, который они вводили
User-agentБраузер, версия, движок, операционная система, иногда модель устройстваСамо по себе — немного, но в сочетании с другими — очень много — это первое поле любого когда-либо построенного отпечатка
Аутентифицированный пользовательТот, кого туда записало ваше приложение или базовая аутентификацияИменованная учётная запись, объединённая со всеми шестью полями выше, в одной строке

Семь полей, одна строка — записывается на каждый запрос, который делает браузер — а это обычно от двадцати до восьмидесяти строк на один просмотр страницы. Ничего из этого не было решением. Всё это — запись.

Девять мест, где ваш собственный стек записывает посетителя

Почти весь спор о логировании крутится вокруг первой строки таблицы. Это единственное, о существовании чего люди знают, и оно далеко не самое откровенное из того, что есть на машине.

ГдеЧто записываетсяСколько это обычно живёт
Лог доступаСемь полей выше — на каждый запросРотация, которую вы не выбирали. Обычное значение по умолчанию — две недели
Лог ошибокНеудачные и отклонённые запросы, с адресом, полным URL и часто с рефереромТа же ротация — и его никто никогда не открывал
Лог приложенияВсё, что ваш фреймворк счёл достойным строки: идентификаторы учётных записей, email-адреса, иногда — целое тело запросаПока не заполнится диск — во многих инсталляциях именно так
Лог базы данныхМедленные запросы дословно, включая параметрыПока кто-нибудь не заметит, что он включён
Лог почтыКаждый адрес, на который вы отправляли, каждый адрес, вернувшийся с ошибкой, и момент каждой попыткиРотация, плюс всё, что застряло в очереди
Прокси или CDN на входеТот же запрос ещё раз, уже в другой компании, с реальным адресом, перенесённым в заголовокСрок хранения у этой компании — не ваш, и на вашей странице конфиденциальности он не опубликован
АналитикаВизит, адрес, экран, реферер и упорядоченный путь по сайтуМесяцы по умолчанию, годы — если настройку по умолчанию никто не трогал
Трекер ошибокТрассировка стека, адрес, который её вызвал, и всё, что оказалось в области видимости в этот моментВсё, за что заплачено по тарифу
Каждая резервная копия всех восьми пунктов вышеВсё то же самое ещё раз, замороженное в момент снятия снимкаСрок хранения резервных копий — неизменно самое большое число в этой таблице

Именно последняя строка сводит на нет большинство благих намерений. Сокращение ротации логов с четырнадцати дней до одного меняет то, что лежит на диске, и совершенно не меняет копию, снятую в три часа ночи и хранимую год. Удаление записи, которая уже реплицирована, — это смена местоположения, а не удаление.

Два поля, которые выдают больше, чем адрес

Адрес — это поле, о котором спорят все, и у него самый короткий срок полезной жизни: он меняется, он общий для многих, а в мобильной сети принадлежит оператору связи, а не человеку. Два соседних поля незаметно хуже.

Реферер описывает читателя, а не запрос

Он отвечает на вопрос, который вы никогда не задавали: где этот человек был секунду назад. Это и пересланная ему ссылка на приватный документ, и внутренняя система тикетов, и превью почтового клиента, и страница сайта, который он не хотел бы связывать с вашим. Браузеры теперь обрезают путь, если переход ведёт на другой домен, и это помогает — но никак не помогает со ссылками внутри вашего собственного сайта, где полный путь по-прежнему отправляется и по-прежнему записывается.

User-agent — основа отпечатка

Сам по себе он — толпа. В сочетании с адресом, языковым заголовком, порядком запросов и набором принимаемых форматов он неделями остаётся одним и тем же посетителем — без cookie, без согласия и без того, чтобы кто-то решил кого-то отслеживать. Именно этот механизм делает фразу «мы храним только серверные логи» более слабой, чем думает тот, кто её произносит.

Секреты попадают в лог, потому что были в URL

Ради этой ошибки стоит дочитать страницу до конца: она распространена, она незаметна и полностью в вашей власти. Всё, что после знака вопроса, — часть строки запроса, а строка запроса — это то, что записывается.

  • Ссылки для сброса пароля. Одноразовый токен в query-строке записывается открытым текстом в лог доступа, в резервную копию лога доступа и на каждом прокси между читателем и вами.
  • Ссылки-приглашения и ссылки для отписки. Устроены так же, живут дольше и обычно вообще не истекают.
  • Идентификаторы сессии, переданные в URL. Редкость в новом коде, но всё ещё встречается в старом, и для любого, у кого есть этот файл, — полный захват учётной записи.
  • API-ключи, переданные браузеру. Ключ в query-строке — это ключ в логе, ключ в реферере, отправленном третьей стороне, и ключ в истории читателя.
  • Поле поиска. Поиск по сайту, отправляемый методом GET, записывает каждый запрос, который кто-либо вводил на вашем сайте, рядом с адресом того, кто его ввёл.

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

Что у вас могут потребовать и кто

Другие материалы на этом сайте — об инструментах, поступающих в хостинг-компанию в юрисдикции, выбранной специально для этого. Инструмент, который добирается до ваших собственных логов, проще: его вручают вам, там, где находитесь вы, и местоположение машины тут вообще ни при чём.

  • Гражданское требование в вашей собственной стране. Тот, кто судится из-за комментария, утечки или покупки, запрашивает у оператора сайта то, что у оператора есть. Оператор — это вы, а две недели логов доступа — это то, что легко обязать предоставить.
  • Запрос от читателя. Согласно европейскому законодательству о защите данных человек вправе спросить, что вы о нём храните, а адрес способен быть персональными данными: в 2016 году Суд ЕС постановил именно это по делу C-582/14, где динамический адрес, которым владел оператор сайта, был признан персональными данными, потому что существовал законный способ установить абонента. Срок хранения тоже должен быть обоснован — статья 5(1)(e) требует хранить не дольше, чем необходимо, а «так уж вышло по умолчанию» — не цель.
  • Тот, кто скомпрометирует машину. Самый вероятный читатель вашего лога доступа — вовсе не суд. Логи редко шифруются, редко мониторятся и почти никогда не входят в модель угроз, а лежат по предсказуемому пути на любом сервере, собранном обычным способом.
  • Все, до кого дотягиваются ваши резервные копии. Копия, хранимая за пределами площадки, — это копия в другой компании, под другой юрисдикцией, подотчётная инструментам, которых вы не читали.

Ничто из этого не является юридической консультацией, и это хозяйство — не ваш юрист. Это та же логика перечня, применённая к вашей стороне провода: то, чего вы не можете предоставить, не может быть с вас потребовано, а всё остальное — вопрос того, чей суд спрашивает. Как это работает на стороне хостинга, описано в материале что на самом деле происходит, когда полиция обращается к хостеру.

Хранить меньше, не ослепнув

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

ИзменениеЧто оно даётЧего оно вам стоит
Усекайте адрес уже при записиОбнулите последний октет v4-адреса или последние восемьдесят бит v6-адреса прямо в формате лога, чтобы полное значение вообще никогда не попадало на дискПостфактум-расследование по конкретному посетителю. Блокировка и ограничение частоты запросов по-прежнему работают, потому что оба механизма действуют на живой запрос, а не на файл
Сокращайте ротацию осознанноОдин день для публичного сайта — потому что это число выбрали вы, а не пакет по умолчаниюВозможность расследовать что-либо старше выбранного вами окна
Перестаньте логировать статические файлыУбирает четыре пятых строк и ни капли смыслаНичего. Это единственная строка без компромисса
Откажитесь от реферераПерестаньте записывать, где читатель был секунду назадЗнание того, какая ссылка или какое обсуждение приводит к вам читателей, — на этот вопрос вместо этого может ответить аналитика с согласием пользователя
Разделите лог безопасности и лог аналитикиДва файла, две цели, два срока хранения, и адреса — только в одном из нихДвадцать минут настройки, один раз
Внесите логи в список исключений резервного копированияОстанавливает то, как ночной снимок тихо сохраняет именно то, что только что уничтожила ротацияНичего, о чём вы когда-либо пожалеете. Ещё никто не восстанавливал резервную копию, чтобы почитать старый лог доступа

Два из этих шести пунктов не стоят вообще ничего и снимают большую часть рисков, описанных на этой странице. О последнем не думает никто, и именно поэтому остальные пять недорабатывают.

Третьи стороны, которые логируют ваших читателей за вас

Всё сказанное выше — про файлы на машине, которую контролируете вы. Но браузер, загружающий вашу страницу, ещё и открывает соединение с каждым другим доменом, упомянутым на странице, и каждый из них получает адрес, user-agent и реферер, сообщающий, какая именно ваша страница читалась — ещё до того, как посетитель ответил на баннер согласия, потому что запрос уже ушёл.

  • Шрифт, отдаваемый чужим сервером. Одна строка в таблице стилей — и каждый читатель каждой страницы раскрывается третьей стороне ради файла, который вы вполне могли бы разместить в той же папке, что и весь остальной сайт.
  • Встроенное видео или карта. Загружается сразу, на каждой странице, где присутствует, — независимо от того, нажал ли кто-нибудь «play».
  • Виджет чата или тег-менеджер. По замыслу присутствует на каждой странице и способен подгружать дополнительный код, который вы не проверяли.
  • Трекер ошибок. Самый полезный из них и самый откровенный: он существует именно для того, чтобы передавать вам состояние чужой сессии.
  • CDN перед всем сайтом. Это не аргумент против CDN — это разумный компромисс — но это компания, которая видит каждый запрос раньше вас, ведёт собственные логи и отвечает перед собственной юрисдикцией.

Разместить первые три у себя обычно можно за полдня работы, и это убирает больше стороннего наблюдения, чем любая настройка на вашем собственном сервере. Это также та часть страницы, которая улучшает то, что получают ваши читатели, а не только то, что у вас могут обязать предоставить, — и именно поэтому с неё стоит начать. Аналогичный список, направленный на риски для вас самих, а не для ваших читателей, — в материале девять вещей, которые выдают сайт.

Что это хозяйство может с этим сделать, а что нет

Честно провести границу дороже, чем любое заверение, поэтому вот она — с этой стороны.

  • Наши собственные HTTP-логи доступа уничтожаются по суточному таймеру, и никакой истории адресов, записи о местоположении при входе или переживающего это отпечатка не остаётся. Полный список того, что всё же сохраняется, опубликован в виде перечня, и в нём семь записей.
  • То, что поступает через юридическую процедуру, учитывается в отчёте о прозрачности, а что именно выдаётся по законному постановлению, записано заранее, а не решается на месте.
  • На VPS или выделенном сервере логи, описанные на этой странице, находятся внутри вашей операционной системы. Мы их не читаем, никуда их не отправляем и точно так же не можем настроить их за вас — единоличная аренда режет в обе стороны, в этом и весь смысл.
  • Что мы можем обеспечить — это слой ниже: никакой записи личности при регистрации, расчёты только ончейн, и машина в юрисдикции, которую выбрали вы, а не в той, где живёт эмитент вашей карты.

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

Часовой аудит собственных логов

Ничего из перечисленного ниже не требует покупки какого-либо инструмента, и каждый шаг сообщает то, чего не сообщал предыдущий.

  1. Распечатайте одну строку своего лога доступа и прочитайте её вслух, поле за полем, так, как это сделал бы посторонний.
  2. Перечислите все файлы в своей директории логов, затем отметьте те, что открывали за последний год. Неотмеченные — это чистый риск.
  3. Прочитайте конфигурацию ротации и запишите, сколько дней она хранит на самом деле, а не то число, которое, как вам помнится, вы когда-то согласовали.
  4. Восстановите резервную копию за прошлый месяц во временную директорию и поищите там лог, который, как вам кажется, был удалён две недели назад.
  5. Поищите в логе доступа слова token, reset, key, session и password. Всё, что найдёте, — это секрет, который уже записан на диск и который нужно не просто исправить, а сменить.
  6. Откройте свою главную страницу с включённой панелью сети браузера и выпишите все домены, к которым идут обращения и которые вам не принадлежат. Каждый из них — компания, хранящая данные о ваших читателях по собственному сроку хранения.
  7. Проверьте, какой заголовок несёт реальный адрес за вашим прокси или CDN, и убедитесь, записывает ли его исходный сервер. CDN не останавливает логирование на исходном сервере — он просто переносит поле.
  8. Откройте самое недавнее событие в своём трекере ошибок и посчитайте, сколько деталей о реальном читателе есть в его содержимом.
  9. Осознанно определите три срока хранения — для безопасности, для аналитики, для резервных копий — и запишите их там, где их найдёт следующий, кто будет настраивать этот сервер.
  10. Составьте перечень: что существует, где, как долго и что вы бы предоставили, если бы завтра утром поступило законное постановление. Если этот документ неприятно писать — это самый полезный час из всего списка.

Вопросы, которые задают на самом деле

Считаются ли серверные логи персональными данными?

Часто да, и причина — в адресе. В 2016 году Суд Европейского союза постановил, что динамический адрес, которым владеет оператор сайта, является персональными данными, если существует законный способ установить абонента, и сегодня та же логика распространена и за пределами ЕС. Практическое следствие — не штраф, а обязанность: о том, что вы храните, у вас могут спросить, а то, что вы храните, вы обязаны обосновать.

Как долго нужно хранить логи доступа?

Столько, сколько нужно, чтобы ответить на вопрос, который вы им реально задаёте, а для большинства сайтов это «что произошло за последний день-два». Стандартные две недели выбрал мейнтейнер пакета, который никогда не видел вашего сайта. Выберите число, запишите почему, и проверьте, что резервная копия втихую не хранит копию ещё год после истечения срока.

Стоит ли просто полностью отключить логирование?

Нет, и это самая распространённая гиперкоррекция. Сервер без логов нельзя отладить, когда он ломается, и он не сможет сообщить, что его атакуют прямо сейчас. Усечение адреса, отказ от логирования статики и сокращение окна хранения убирают почти весь риск, оставляя файл полезным.

Защищает ли офшорный хостинг мои собственные логи посетителей?

Он защищает их от инструмента, врученного хостинг-компании. Но никак не защищает от инструмента, врученного вам, в стране, где вы живёте, с требованием предоставить то, что у вас есть — а у вас есть операционная система. Перенести машину и сменить оператора — разные решения, и купить можно только одно из них.

Достаточно ли усечения IP-адреса?

Это самое эффективное из всех изменений, но само по себе оно недостаточно. Лог, из которого убрали адрес, но в котором остались временная метка до секунды, полный путь и user-agent, по-прежнему прослеживает одного посетителя в рамках сессии, а часто и между сессиями. Усеките адрес, затем сократите срок хранения — вместе они стоят больше, чем каждое по отдельности.

А что насчёт логов, которые ведёт моя система аналитики?

Они обычно живут дольше и содержат больше, чем серверный лог, а если инструмент размещён у кого-то другого, они находятся в другой компании под другой юрисдикцией. Аналитика, размещённая у вас самих, с включённым маскированием адреса и осознанно выбранным сроком хранения, отвечает на тот же бизнес-вопрос, оставляя лишь малую долю записи.

Важны ли логи ошибок так же, как логи доступа?

Часто даже больше, а внимания им достаётся в разы меньше. Лог ошибок фиксирует запросы, которые пошли не так, а именно там оказываются искажённые URL, наполовину введённые учётные данные и трассировки стека с реальными данными. Это ещё и файл, для которого срок хранения осознанно выбирают реже всего.

Какое единственное изменение стоит сделать уже сегодня?

Исключите директорию логов из резервного копирования, а затем усеките адрес в формате лога. Первое останавливает то, что удаление, которое вы уже настроили, каждую ночь отменяется заново; второе убирает поле, из-за которого вся остальная строка идентифицирует человека. Вместе это занимает около двадцати минут, и именно эти два изменения большинство людей никогда не делает.

Каждая цена в этом хозяйстве опубликована полностью и в одном месте. Смотреть весь каталог